您的位置:首页 > 文旅 > 美景 > ES(Elasticsearch)的使用

ES(Elasticsearch)的使用

2025/1/8 15:57:49 来源:https://blog.csdn.net/Founder_Xiao_Xin/article/details/140381910  浏览:    关键词:ES(Elasticsearch)的使用

Elasticsearch(简称ES)是一个基于Lucene的搜索引擎,提供全文搜索功能,并且具有HTTP web接口和无模式的JSON文档。以下是Elasticsearch的使用详解:

1. 基本概念

  • 索引(Index):类似于数据库中的表,用于存储数据。
  • 文档(Document):类似于表中的一行记录,是一个JSON对象。
  • 分片(Shard):为了能够横向扩展,Elasticsearch可以将索引分割成多个分片。
  • 副本(Replica):用于备份分片,提供高可用性。

2. 安装与启动

  • 下载并解压Elasticsearch。
  • 修改config/elasticsearch.yml文件,配置集群名称、节点名称等。
  • 运行Elasticsearch服务。

3. 索引操作

  • 创建索引

    PUT /my_index
    {"settings": {"number_of_shards": 3,"number_of_replicas": 2}
    }
    
  • 查看索引

    GET /_cat/indices?v
    
  • 删除索引

    DELETE /my_index
    

4. 文档操作

  • 添加或更新文档

    POST /my_index/_doc/1
    {"title": "Elasticsearch 教程","content": "Elasticsearch 是一个基于 Lucene 的搜索服务器...","date": "2019-01-01"
    }
    
  • 获取文档

    GET /my_index/_doc/1
    
  • 更新文档

    POST /my_index/_doc/1/_update
    {"doc": {"title": "更新后的 Elasticsearch 教程"}
    }
    
  • 删除文档

    DELETE /my_index/_doc/1
    

5. 搜索数据

  • 基本搜索

    GET /my_index/_search
    {"query": {"match": {"content": "Elasticsearch"}}
    }
    
  • 复杂搜索:包括布尔查询、范围查询、前缀查询等。

6. 聚合

  • 桶聚合:如terms、range、date_histogram等。
  • 度量聚合:如avg、max、min、sum等。

7. 索引优化

  • 使用合适的映射:定义字段类型,如text、keyword、date等。
  • 使用分析器:定义文本字段的分词规则。
  • 索引模板:为相似的索引定义模板。

8. 集群管理

  • 节点发现:配置集群中的节点如何发现彼此。
  • 分片分配:控制分片在集群中的分配策略。
  • 集群健康:检查集群状态。

9. 监控与安全

  • 监控:使用Elasticsearch的API监控集群状态。
  • 安全:配置身份验证和授权。

10. 客户端库

  • 使用Elasticsearch提供的客户端库(如Java、Python、JavaScript等)与Elasticsearch交互。

示例:使用Python的Elasticsearch客户端

from elasticsearch import Elasticsearch# 连接到Elasticsearch
es = Elasticsearch("http://localhost:9200")# 创建索引
es.indices.create(index="my_index", ignore=400)# 添加文档
es.index(index="my_index", id=1, body={"title": "Elasticsearch 教程","content": "Elasticsearch 是一个基于 Lucene 的搜索服务器...","date": "2019-01-01"
})# 搜索文档
results = es.search(index="my_index", body={"query": {"match": {"content": "Elasticsearch"}}
})print(results['hits']['hits'])

Elasticsearch是一个功能强大的搜索引擎,适用于需要高效搜索功能的应用程序。通过上述详解,您可以了解如何使用Elasticsearch进行数据索引、搜索、聚合和集群管理等操作。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com