拓冰建站拓冰建站
首页 / 资讯中心 / 正文

Elasticsearch 支持哪些类型的数据查询搜索方式?

Elasticsearch 提供了丰富且强大的查询方式可以满足从简单的关键词匹配到复杂的多维分析等各种搜索需求。这些查询方式主要通过其Query DSL来定义并且所有查询都可以在query或filter上下文中执行以控制是否进行相关性算分。Elasticsearch 的主要查询方式分为以下几类一、全文检索查询这类查询是搜索引擎的核心用于执行基于相关性的文本搜索。它会先对输入的文本进行分词然后再去倒排索引中匹配。查询类型描述示例match查询对单个字段执行全文检索。它会分析输入的查询文本并返回匹配的文档。查询address字段中包含mill的文档。match_phrase查询短语匹配查询要求分析后的词条必须按照相同的顺序出现在文档中。查询address字段中完整包含mill road这个短语的文档。multi_match查询多字段版本的match查询可以在多个字段中搜索同一个文本。在state和address字段中搜索包含mill的文档。query_string查询一种功能强大的查询支持 Lucene 的完整查询语法允许使用AND、OR、NOT等操作符以及通配符等但语法相对严格。查找title字段包含search且content字段包含elasticsearch的文档。simple_query_string查询类似query_string但语法更简单、更宽容会忽略错误的语法部分适合用于面向用户的搜索框。用户直接输入search elasticsearch -bug这样的简化查询。二、精确值查询这类查询用于查找字段值完全等于指定值的文档通常用于keyword、数值、日期等类型不会对查询条件进行分词。查询类型描述示例term查询最常用的精确查询用于查找指定字段中包含确切词条的文档。查找account_number字段为20的文档。terms查询term查询的多值版本匹配字段中包含任意一个指定词条的文档。查找status字段为active或pending的文档。range查询范围查询用于匹配字段值在指定区间内的文档适用于数值、日期等。查找age字段在 18 到 30 岁之间的文档。ids查询根据文档的_id数组进行查询。查找 ID 为1、4、100的文档。exists查询查找指定字段存在值不为空的文档。查找包含user字段的文档。三、复合查询复合查询用于将多个子查询组合在一起实现更复杂的搜索逻辑。查询类型描述示例bool查询最常用的复合查询通过must必须匹配、must_not必须不匹配、should应该匹配加分和filter必须匹配不参与算分子句来组合多个条件。查找address包含mill且gender为M但age不为 38 的文档。function_score查询算分函数查询允许你修改或自定义文档的相关性算分以满足特定的业务需求如将某些文档置顶。在搜索结果中让广告商品的相关性得分更高排名更靠前。四、地理位置查询专门用于处理地理坐标数据实现基于位置的搜索。查询类型描述示例geo_distance查询距离查询查找指定地理点周围一定距离内的文档。查找当前位置 5 公里内的所有酒店。geo_bounding_box查询矩形范围查询查找坐标落在指定矩形区域内的文档。查找某个矩形商圈内的所有店铺。五、特殊与高级查询查询类型描述示例nested查询用于查询嵌套对象nested数据类型。因为嵌套对象是独立存储的所以可以用此查询对它们进行独立且精确的匹配。查找comments嵌套对象中user为john且content包含nice的博客文章。prefix查询前缀查询查找字段以指定前缀开头的文档。查找所有name以张开头的用户。wildcard查询通配符查询支持*匹配 0 或多个字符和?匹配 1 个字符。查找code字段匹配PX?00*模式的文档。regexp查询正则表达式查询查找字段值匹配指定正则表达式的文档。查找id_card字段匹配特定身份证号格式的文档。fuzzy查询模糊查询基于编辑距离算法可以匹配与搜索词项相似的词用于处理拼写错误。用户输入Accha可以查找到包含Iccha、accha等词的文档。Query 与 Filter 上下文在使用查询时理解Query 上下文和Filter 上下文的区别对性能优化至关重要*Query 上下文回答的是“文档有多匹配”的问题。它除了判断文档是否满足条件外还会计算一个相关性得分 (_score)并根据得分排序。适合全文搜索这类需要相关性的场景。*Filter 上下文回答的是“文档是否匹配”的问题。它只进行二值判断是/否不计算得分。由于不涉及评分计算且结果可以被缓存Filter 查询的效率通常更高。适合范围查询、精确匹配等不需要相关性的场景例如range、term查询常放在filter子句中。
分享:

看完干货,该让你的企业上线了

免费需求沟通 · 48 小时内出具建站方案 · 河南本地可上门