news 2026/5/12 5:12:45

Elasticsearch 8.13.4 常用搜索操作完全指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Elasticsearch 8.13.4 常用搜索操作完全指南

Elasticsearch 作为分布式搜索和分析引擎,提供了丰富的搜索能力。本文将详细介绍 Elasticsearch 8.13.4 中最常用的搜索操作,帮助您快速掌握其核心搜索功能。

一、基础概念回顾

在开始搜索操作前,让我们简要回顾几个核心概念:

  • 索引(Index): 存储文档的容器,类似于数据库中的表
  • 文档(Document): 可搜索的基本信息单元,以 JSON 格式表示
  • 倒排索引: Elasticsearch 使用的数据结构,支持快速全文搜索

二、常用搜索操作

1. 匹配所有文档查询

最基础的搜索,返回索引中的所有文档:

GET/your_index/_search{"query":{"match_all":{}}}

2. 全文搜索 (Match Query)

最常用的全文搜索查询,会对查询文本进行分析:

GET/your_index/_search{"query":{"match":{"field_name":"搜索关键词"}}}

3. 短语匹配 (Match Phrase Query)

要求所有词条都出现且顺序相同:

GET/your_index/_search{"query":{"match_phrase":{"field_name":"精确短语搜索"}}}

4. 多字段搜索 (Multi-match Query)

在多个字段中执行相同的搜索:

GET/your_index/_search{"query":{"multi_match":{"query":"搜索关键词","fields":["field1","field2","field3"]}}}

5. 精确匹配 (Term Query)

用于精确值匹配,不会对查询文本进行分析:

GET/your_index/_search{"query":{"term":{"field_name":"精确值"}}}

6. 术语集合查询 (Terms Query)

匹配指定字段中包含任意一个指定术语的文档:

GET/your_index/_search{"query":{"terms":{"field_name":["值1","值2","值3"]}}}

7. 范围查询 (Range Query)

查找指定范围内的值:

GET/your_index/_search{"query":{"range":{"field_name":{"gte":10,"lte":20}}}}

8. 布尔查询 (Bool Query)

组合多个查询条件,支持 must(必须匹配)、should(应该匹配)、must_not(必须不匹配)、filter(必须匹配但不计算分数):

GET/your_index/_search{"query":{"bool":{"must":[{"match":{"title":"Elasticsearch"}}],"filter":[{"term":{"status":"published"}},{"range":{"publish_date":{"gte":"2023-01-01"}}}],"should":[{"term":{"tags":"教程"}},{"term":{"tags":"指南"}}],"minimum_should_match":1}}}

9. 通配符查询 (Wildcard Query)

使用 * 匹配任意字符序列,? 匹配任意单个字符:

GET/your_index/_search{"query":{"wildcard":{"field_name":"搜索*"}}}

10. 前缀查询 (Prefix Query)

查找以指定前缀开头的术语:

GET/your_index/_search{"query":{"prefix":{"field_name":"前缀"}}}

11. 模糊查询 (Fuzzy Query)

基于编辑距离进行模糊匹配:

GET/your_index/_search{"query":{"fuzzy":{"field_name":{"value":"搜索词","fuzziness":"AUTO"}}}}

三、搜索结果控制

1. 分页

GET/your_index/_search{"from":0,"size":10,"query":{"match_all":{}}}

2. 排序

GET/your_index/_search{"query":{"match_all":{}},"sort":[{"field1":{"order":"asc"}},{"field2":{"order":"desc"}}]}

3. 指定返回字段

GET/your_index/_search{"_source":["field1","field2"],"query":{"match_all":{}}}

4. 高亮显示

GET/your_index/_search{"query":{"match":{"content":"搜索关键词"}},"highlight":{"fields":{"content":{}}}}

四、聚合查询

Elasticsearch 提供了强大的聚合功能,用于数据分析:

1. 指标聚合

GET/your_index/_search{"size":0,"aggs":{"avg_price":{"avg":{"field":"price"}},"max_price":{"max":{"field":"price"}}}}

2. 分桶聚合

GET/your_index/_search{"size":0,"aggs":{"group_by_category":{"terms":{"field":"category","size":10}}}}

3. 组合聚合

GET/your_index/_search{"size":0,"aggs":{"group_by_category":{"terms":{"field":"category"},"aggs":{"avg_price":{"avg":{"field":"price"}}}}}}

五、性能优化建议

  1. 使用 filter 上下文:不计算分数,性能更好且可缓存
  2. 避免通配符开头的前缀查询:如*text,会导致性能问题
  3. 合理使用分页:深度分页(from + size > 10000)性能较差,考虑使用 search_after
  4. 选择合适的字段类型:text 用于全文搜索,keyword 用于精确匹配

六、总结

Elasticsearch 8.13.4 提供了丰富多样的搜索功能,从基础的全文搜索到复杂的聚合分析。掌握这些常用搜索操作,能够帮助您构建高效、灵活的搜索应用。

在实际应用中,建议根据具体场景选择合适的查询类型,并注意性能优化,以获得最佳的搜索体验。

希望本文能帮助您更好地理解和使用 Elasticsearch 的搜索功能!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/2 14:27:27

零基础入门:12个月成为渗透测试员的完整路线图(必收藏)

进入渗透测试领域似乎是一件令人难以承受的事情——尤其是如果你之前没有任何经验的话。对我来说,渗透测试曾经看起来像是一个不可能实现的职业。但如果可以使用捷径来加速你的旅程呢?通过利用现有渗透测试人员的方法和个性中的弱点,你可以从…

作者头像 李华
网站建设 2026/4/26 13:36:44

基于微信小程序的植物百科平台系统毕业设计项目源码

题目简介在植物科普大众化、查询场景轻量化需求升级的背景下,传统植物百科存在 “信息检索难、交互形式单一、场景适配性差” 的痛点,基于微信小程序构建的植物百科平台系统,适配植物爱好者、园艺从业者、学生等角色,实现植物信息…

作者头像 李华
网站建设 2026/5/6 17:18:44

拆解鸿蒙 IoT 接入:网络通信、分布式软总线和能力调用是怎么配合的

摘要 随着物联网设备数量的快速增长,设备之间“能连上”已经不是问题,如何低成本、低复杂度、稳定地接入和管理设备,才是开发中的核心难点。 在传统模式下,IoT 设备往往只是一个“外设”,需要开发者自己处理协议、连接…

作者头像 李华
网站建设 2026/5/12 4:30:38

基于SpringBoot的社区居民服务系统的设计与实现毕业设计项目源码

项目简介在社区服务精细化、居民需求多元化的背景下,传统社区管理存在 “服务响应慢、需求对接散、数据统计难” 的痛点,基于 SpringBoot 构建的社区居民服务系统,适配居民、网格员、物业人员、社区管理员等角色,实现便民服务、事…

作者头像 李华
网站建设 2026/5/8 12:56:44

ARM 汇编指令:B

ARM 汇编指令:B 核心含义 B 是 Branch 的缩写,意思是 无条件跳转。它会让程序的执行流程立即、无条件地跳转到指定的目标地址,继续执行。它是最基础、最常用的指令之一。 基本语法 B labellabel: 一个符号(标签)&…

作者头像 李华