Elasticsearch 中的 term、terms 和 match 查询

这篇具有很好参考价值的文章主要介绍了Elasticsearch 中的 term、terms 和 match 查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

term 查询

terms 查询

match 查询

注意事项

结论


   Elasticsearch 提供了多种查询类型,用于不同的搜索需求。termtermsmatch 是其中最常用的一些查询类型。下面分别介绍每种查询类型的用法和特点。

term 查询

  term 查询用于精确值匹配。它通常用于关键字(keyword)类型的字段,或者已经过精确值(如数字、日期等)处理的文本字段。term 查询不会对查询的文本进行分词。

示例

GET /example_index/_search
{
  "query": {
    "term": {
      "status": {
        "value": "active"
      }
    }
  }
}

  这个查询会精确匹配字段 status 中值为 "active" 的文档。

terms 查询

  terms 查询是 term 查询的扩展,它允许你一次性检索多个精确值。

示例

GET /example_index/_search
{
  "query": {
    "terms": {
      "status": ["active", "pending", "closed"]
    }
  }
}

   这个查询会匹配字段 status 中值为 "active"、"pending" 或 "closed" 的文档(他是一个或的关系,只要Doc的status字段包含任意一个就命中)。

match 查询

   match 查询是一个标准的全文搜索查询,它会对查询文本进行分词处理,然后搜索分词后的结果。match 查询适用于全文字段(text)。

示例

GET /example_index/_search
{
  "query": {
    "match": {
      "description": "quick brown fox"
    }
  }
}

   这个查询会对 "quick brown fox" 进行分词,然后在 description 字段中搜索这些分词。

注意事项

   1. 分析器

  match 查询会使用字段相关联的分析器进行分词,而 termterms 查询则不会。

  2. 性能

  termterms 查询通常比 match 查询更快,因为它们不涉及分词过程,直接在倒排索引中查找精确值。

  3. 用例

  • 使用 term 查询来匹配文档中的精确值,如状态标签、ID等。
  • 使用 terms 查询可以一次性匹配多个精确值,适合于筛选符合多个条件的文档。
  • 使用 match 查询来执行全文搜索,适合于搜索文本内容。

结论

   在 Elasticsearch 中,termtermsmatch 查询是基础的搜索操作,它们分别适用于不同的场景。termterms 用于精确匹配,而 match 用于全文搜索。了解它们的差异和适用情况对于构建有效的搜索查询至关重要。文章来源地址https://www.toymoban.com/news/detail-850741.html

到了这里,关于Elasticsearch 中的 term、terms 和 match 查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElasticSearch系列 - SpringBoot整合ES:多个精确值查询 terms

    ElasticSearch - SpringBoot整合ES:多个精确值查询 terms 01. ElasticSearch terms 查询支持的数据类型 在Elasticsearch中,terms查询支持多种数据类型,包括: 字符串类型:可以将多个字符串值作为数组传递给terms查询,以匹配包含任何一个指定字符串值的文档。 数值类型:可以将多个数值作

    2024年02月16日
    浏览(54)
  • elasticsearch[二]-DSL查询语法:全文检索、精准查询(term/range)、地理坐标查询(矩阵、范围)、复合查询(相关性算法)、布尔查询

    elasticsearch 的查询依然是基于 JSON 风格的 DSL 来实现的。 Elasticsearch 提供了基于 JSON 的 DSL(Domain Specific Language)来定义查询。常见的查询类型包括: 查询所有 :查询出所有数据,一般测试用。例如:match_all 全文检索(full text)查询 :利用分词器对用户输入内容分词,然后去

    2024年01月18日
    浏览(43)
  • es笔记三之term,match,match_phrase 等查询方法介绍

    本文首发于公众号:Hunter后端 原文链接:es笔记三之term,match,match_phrase 等查询方法介绍 首先介绍一下在 es 里有两种存储字符串的字段类型,一个是 keyword,一个是 text。 keyword 在存储数据的时候是作为一个整体存储的,不会对其进行分词处理 text 存储数据的时候会对字符串

    2024年02月05日
    浏览(42)
  • 【ES】es查询term、match、match_phrase、mast_not、mast...

    keyword:不分词 非keyword:分词 对属性名.keyword,就是全值匹配。如果查询的属性是text,就会匹配分词。 term:查询的入参,不会分词。 terms:查询的入参,不会分词。 match:分词匹配 match_phrase:短语匹配,一个slop属性,可以使短语中的词,调换顺序 match_phrase_prefix:分词前缀

    2024年02月22日
    浏览(31)
  • es中的match、term、text、keyword、bool

    总结一下es中的match、term、text、keyword、bool等。比如我想搜索一辆“红色奥迪车”: match:在匹配时会对所查找的进行分词,然后按分词匹配查找,用于模糊查询。结果会将包含“红色”或“奥迪”的车都找出来。 term:对进行查找,用于精确查找。只有名

    2024年02月11日
    浏览(34)
  • Elasticsearch(es)中must以及term的基本使用

    在 Elasticsearch(ES)中,should 和 must 是布尔查询(Boolean Query)中常用的两个子句。 should 子句:should 表示一个或多个条件之一满足即可匹配文档。它类似于逻辑上的 OR 操作,用于构建可选项或者提升匹配文档的相关性评分。当至少一个 should 子句匹配时,文档将被认为是匹配

    2024年01月22日
    浏览(31)
  • 探索 Elasticsearch 8.X Terms Set 检索的应用与原理

    Terms Set查询是Elasticsearch中一种强大的查询类型,主要用于处理多值字段中的文档匹配。 其核心功能在于,它可以检索至少匹配一定数量给定词项的文档,其中匹配的数量可以是固定值,也可以是基于另一个字段的动态值。这种查询方式在处理具有多个属性、分类或标签的复

    2024年02月13日
    浏览(41)
  • elasticsearch 报错: No value specified for terms query

    java调用es查询数据,提示错误: .No value specified for terms query 报错原因就是: 构造termsQuery查询条件的时候,比如:下边构造了一个null进去,就会报错。

    2024年02月13日
    浏览(30)
  • ES term terms 查询

    先说结论: term、terms只作用于keyword类型字段,不作用text类型(要使用match查询); term、terms都代表字段 全等匹配 ,意思是 搜索词 和 命中词 是完全 等匹 ,不是包含关系; 1、创建索引 person_name设置为keyword;query_name设置为text分词; 查询1 查询2 

    2024年02月15日
    浏览(24)
  • [match_phrase_prefix] query does not support [zero_terms_query] 问题解决

    @[TOC][match_phrase_prefix] query does not support [zero_terms_query] 问题解决 elasticsearch版本 :7.8 客户端elasticsearch : 7.12.1 报错代码 match_phrase_prefix在Elasticsearch 7.10版本后才支持zero_terms_query选项 https://github.com/elastic/elasticsearch/issues/58468

    2024年02月16日
    浏览(33)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包