【干货精品分享】Elasticsearch 6.7 Should 子语句的失效

这篇具有很好参考价值的文章主要介绍了【干货精品分享】Elasticsearch 6.7 Should 子语句的失效。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在ES 使用多条件 查询,并且是多个条件只需要满足部分条件的时候,我们通常会使用到ES的should查询

GET /trademark_query_index/_search
{
    "query":{
        "bool" : {
          "must":[{
            "match" : {
                "origin": {
                  "query" : "JP"
                }
              }
            }
            ],
        "should": [                 
        {
              "match" : {
                "brandName": {
                  "query" : "book"
                }
              }
        },
        {
              "match" : {
                "applicationStatus": {
                  "query" : "Inactive"
                }
              }
        }
        ],
        "minimum_should_match":"50%"
        }
  }
}

没有should的查询情况如下:

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

执行包含should的语句查询结果:

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

这很好理解,should中的子语句,只有1个满足条件 都可以与must 进行& 查询

问题:当我把should 中的条件改成只有一个的时候minimum_should_match 的值不变,结果导致should的条件失效了。例如:

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

然后我尝试把minimum_should_match 从百分之50慢慢提高到百分之99,当中不展示,值显示百分99的结果如下:

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

很疑惑,继续验证。

但是如果把minimum_should_match 改成百分之100,结果却生效了

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

问题产生原因:

查看官方文档的解释后:

很重要的2句话:

1、表示可选子句总数的百分比是必需的。根据百分比计算出的数字向下舍入并用作最小值.

2、无论计算达到什么数字,大于可选子句数量的值或小于 1 的值都不会被使用。 (即:无论计算结果有多低或多高,所需匹配的最小数量永远不会低于1或大于子句数量。

1的百分之99 还是 < 1 ,因此导致了以上的结果。

官方文档描述如下:

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

【干货精品分享】Elasticsearch 6.7 Should 子语句的失效,elasticsearch ,elasticsearch,大数据,搜索引擎

关注我,后续有更多实践问题分享。文章来源地址https://www.toymoban.com/news/detail-859592.html

到了这里,关于【干货精品分享】Elasticsearch 6.7 Should 子语句的失效的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Elasticsearch同时使用should和must

    must和should组合查询,should失效。 使用must嵌套查询,将should组成的bool查询包含在其中一个must查询中。

    2024年02月13日
    浏览(27)
  • 【精品】华为认证数通HCIA+HCIP题库分享(含答案解析)

    嗨~大家好久不见,我是薄荷学姐,随着华为业务也全球领域的迅猛发展,越来越多人开始重视华为认证的重要性。今天给大家分享一下去年8月份的题库,基本都是一样,希望可以帮助到大家哈 想要通过华为认证,除了进行专业的学习,练题刷题也是最重要的一环,今天给大

    2024年02月13日
    浏览(34)
  • ElasticSearch minimum_should_match 参数详解

    minimum_should_match :可以使用 minimum_should_match 参数来指定返回文档 必须(must) 匹配的should子句的数量或百分比。可以称他-最小匹配度 如果 bool 查询至少包含一个 should 子句,并且没有 must 或 filter 子句,则默认值为 1。 否则,默认值为 0。 minimum_should_match参数一般放到should叶子查

    2024年02月19日
    浏览(30)
  • Elasticsearch 中 bool组合查询(must 和 should 组合)

    需求 查询考试成绩是 60分 或 90分 的 女生 。 所以查询条件应该这么写 sex == \\\'女\\\' ( score == 60 || score ==90 );  先看下bool的语法 在ES中的实现 方式一: 在bool查询的must 中再嵌套一层bool来做should过滤。 方式二: 使用 minimum_should_match 选项 ,至少匹配一项should子句。 GET stu/_search

    2023年04月09日
    浏览(28)
  • 精品公式——“V型反转”,精准把握V型反转行情,主副图分享

    ►  日线 表现 代码评估 技术指 标代码评估: M5, M14, M25 - 指数移动平均线(EMA): M5:EMA(C,5),COLORLIBLUE;:5日指数移动平均线,用浅蓝色表示。 M14:EMA(C,13),COLORF00FF0;:13日指数移动平均线,用粉色表示。 M25:EMA(C,34),COLORWHITE;:34日指数移动平均线,用白色表示。 这些EMA线是根据收

    2024年02月02日
    浏览(27)
  • 工作常用ES DSL查询语句(干货满满)

       工作中几乎每天都需要使用到ES查询数据,需要根据自己的查询需求构造DSL查询语句来实现,本文记录并分享本人工作中常用的DSL语句以及所遇到问题的解决方案,DSL语句灵活多变,可进行多种组合,任你搭配,让我们一起往下看,希望对你有帮助。 2.1 查看所有索引的

    2024年02月02日
    浏览(72)
  • 干货!SQL性能优化,书写高质量SQL语句

    https://www.cnblogs.com/deepalley/p/12154000.html 写SQL语句的时候我们往往关注的是SQL的执行结果,但是是否真的关注了SQL的执行效率,是否注意了SQL的写法规范? 以下的干货分享是在实际开发过程中总结的,希望对大家有所帮助! 1. limit分页优化 当偏移量特别大时,limit效率会非常低

    2024年02月05日
    浏览(67)
  • 【计算机毕业设计选题】20套精品毕设项目分享(源码+论文)Java 前后端分离

     全新毕业设计项目 Hi 大家好,马上毕业季又要开始了,陆陆续续又要准备毕业设计了,有些学生轻而易举就搞定了,有些学生压根没有思路怎么做,可能是因为技术问题,也可能是因为经验问题。 下边这些毕业设计项目中,大部分都是适用于有一定基础的同学哦,希望每个

    2024年01月25日
    浏览(44)
  • 【Elasticsearch】 10-DSL语法详解-复合查询bool(must、should、must_not、filter)

    Elasticsearch是一个强大的搜索引擎,它提供了丰富的查询功能,以帮助你从大规模数据集中检索相关的文档。在Elasticsearch中, bool 查询是一个非常重要和强大的工具,它允许组合多个查询子句,以构建复杂的查询逻辑。在本篇文章中,我们将深入探讨 bool 查询,包括其概述、

    2024年02月05日
    浏览(36)
  • 技术实践|Hive数据迁移干货分享

    导语 Hive是基于Hadoop构建的一套数据仓库分析系统,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能。它的优点是可以通过类SQL语句快速实现简单的MapReduce统计,不用再开发专门的MapReduce应用程序,从而降低学习成本,十分适合对数据仓库进行统计分

    2024年02月11日
    浏览(49)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包