一. ElasticSearch简介
ElasticSearch 是一个基于 Lucene 构建的开源、分布式、RESTful 风格的搜索和分析引擎。

1. 核心功能
-
强大的搜索能力
- 它能够提供全文检索功能。例如,在海量的文档数据中,可以快速准确地查找到包含特定关键词的文档。这在处理诸如电商产品目录(可以按照产品名称等文本内容搜索)、新闻文章数据库(能依据标题或正文关键词检索新闻)等场景下非常有用。
- 支持多种搜索方式,如简单搜索、短语搜索、模糊搜索等。模糊搜索可以处理用户输入的拼写错误等情况,并且还能进行通配符搜索,像在搜索框中输入 “comput*” 就可以匹配到 “computer”“computing” 等词。
-
数据分析功能强大
- 可以执行聚合操作,对数据进行统计分析。比如在电商销售数据中,通过聚合操作可以计算出不同产品的销售额总和、平均销售额,或者按地域统计订单数量等。这些聚合操作可以帮助企业进行商业智能分析,了解业务发展趋势和用户行为模式。
-
高性能
- ElasticSearch 采用倒排索引的原理,这是一种非常高效的文本检索数据结构。并且它是分布式系统,能够将数据分散存储在多个节点上,这样在搜索和分析时可以充分利用多台服务器的资源,提高查询速度。例如,在一个大型的互联网公司中,面对海量的用户日志数据,ElasticSearch 可以快速响应查询请求,几乎不影响用户体验。
-
高扩展性和高可用性
- 它很容易进行横向扩展,可以通过添加新的节点来增加系统的处理能力和存储容量。同时,它具有副本机制,可以确保数据的安全性和高可用性。即使某个节点出现故障,数据也不会丢失,其他节点可以继续提供服务。这对于关键业务系统,如金融交易系统中的数据存储和查询来说至关重要,能够保证业务的连续性。
2. 应用场景
-
日志分析
- 在企业的 IT 基础设施中,服务器、应用程序等会产生大量的日志。ElasticSearch 可以收集、存储和分析这些日志数据,帮助运维人员快速定位系统故障。例如,通过分析 Web 服务器的日志,可以找出访问量高峰时段、响应时间过长的页面等信息,从而优化服务器性能。
-
企业搜索
- 可以将企业的内部文档(如员工手册、项目文档等)、知识库等数据整合到 ElasticSearch 中。员工可以通过简单易用的搜索界面快速找到所需信息,提高工作效率。比如,在大型律师事务所中,律师可以利用它快速检索相关的法律案例文件。
-
电商搜索和推荐系统
- 对于电商平台,ElasticSearch 可以提供强大的商品搜索功能。它能够根据用户的搜索词,快速返回匹配的商品列表,并且结合用户的行为数据(如浏览历史、购买记录等)进行个性化推荐。例如,当用户搜索 “运动鞋” 时,可以准确地展示各种品牌、型号的运动鞋,并且根据用户的偏好推荐相关的篮球鞋、跑步鞋等。
二. 常用操作命令
1. 创建索引
PUT http://<主机IP地址>:9200/<索引名称>
PUT http://10.0.1.2:9200/company
{
"settings": {
// 将主分片数量
"number_of_shards": 10,
// 设置副本数量
"number_of_replicas": 1
}
}
2. 检索索引信息
GET http://<主机IP地址>:9200/<索引名称>
3. 删除索引信息
DELETE http://<主机IP地址>:9200/<索引名称>
4. 文档操作
4.1 新增文档,并指定ID
POST http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>
POST http://10.0.1.2:9200/company/_doc/123412341415
{
"company_name": "百胜中国有限公司",
"legal_name": "张三",
"tags": ["供应链管理", "餐饮服务"]
}
4.2 新增文档,不指定文档ID,系统采用随机文档ID
POST http://<主机IP地址>:9200/<索引名称>/_doc
POST http://10.0.1.2:9200/company/_doc
{
"company_name": "百胜中国有限公司",
"legal_name": "张三",
"tags": ["供应链管理", "餐饮服务"]
}
4.3 获取指定文档信息
GET http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>
GET http://10.0.1.2:9200/company/_doc/123412341415
4.4 更新文档
PUT http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>
PUT http://10.0.1.2:9200/company/_doc/123412341415
{
"doc": {
"legal_name": "李四",
"tags": ["供应链管理", "餐饮服务", "数字供应链"]
}
}
4.5 删除文档
DELETE http://<主机IP地址>:9200/<索引名称>/_doc/<文档ID>
5. 查看所有的文档列表
GET http://<主机IP地址>:9200/_cat/indices?v
GET http://10.0.1.2:9200/_cat/indices?v
6. 查询
6.1 匹配查询
GET http://<主机IP地址>:9200/<索引名称>/_search
GET http://10.0.1.2:9200/company/_search?pretty
{
"query": {
"match": {
"legal_name": "李四"
}
}
}
match查询:
-
<


845

被折叠的 条评论
为什么被折叠?



