Elasticsearch 是一种开源的分布式搜索引擎,提供了一个快速、可靠、可扩展的搜索和分析引擎。索引和搜索是 Elasticsearch 中最重要的概念之一,下面是它们的详细解释。
索引: 索引是 Elasticsearch 中数据的存储和检索单元,类似于传统数据库中的表。每个索引由一个或多个分片组成,每个分片又包含了多个文档,文档是 Elasticsearch 中最小的数据单元。在创建索引时,需要定义索引的名称、字段、映射和分片等属性。
索引API:
- PUT /index_name: 创建一个新的索引
- DELETE /index_name: 删除一个已存在的索引
- POST /index_name/_doc: 在指定索引中添加一个新文档
- PUT /index_name/_doc/id: 在指定索引中创建一个新文档,其中id为文档唯一标识符
- POST /index_name/_bulk: 批量添加、更新或删除文档
搜索: 搜索是 Elasticsearch 的核心功能之一,它允许用户快速检索大量数据。在 Elasticsearch 中,可以使用 Query DSL(查询领域特定语言)来定义搜索条件。搜索条件包括查询字符串、过滤器、范围、排序、聚合等。
搜索 API:
- GET /index_name/_search: 在指定索引中搜索文档
- GET /index_name/_count: 统计符合搜索条件的文档数量
- POST /index_name/_search: 使用 Query DSL 定义搜索条件进行搜索
- GET /_cluster/health: 检查 Elasticsearch 集群的健康状态
- GET /_cat/indices: 列出所有已存在的索引
在 Elasticsearch 中,还提供了一些高级搜索功能,例如全文搜索、模糊搜索、语音搜索、地理位置搜索等。同时,Elasticsearch 还支持实时搜索,可以在数据变更时自动更新搜索结果。