Elasticsearch multi should 查询多个minimum_should_match

标签 elasticsearch

我需要解决一个带有“SHOULD”条件的问题,该条件使组和该组应根据最小应匹配进行单独评估。因此,不仅一组具有“应该”条件,而且还有更多独立的组具有“应该”条件。

想象一下 A1、A2、A3 和 B1 B2 B3 等条件。 简单的应该查询如下所示:

{
   "query": {
      "bool": {
         "should": [
            { A1 },
            { A2 },
            { A3 },
            { B1 },
            { B2 },
            { B3 },
         ],
         "minimum_should_match" : 1
      }
   }
}

但是我需要评估每个组的minimum_should_match。一组为A组,另一组为B组。类似的东西(这是一个想法,不是有效的代码):

{
   "query": {
      "bool": {
         "should": [
            { A1 },
            { A2 },
            { A3 },
         ],
         "minimum_should_match" : 1,
         "should": [
            { B1 },
            { B2 },
            { B3 },
         ],
         "minimum_should_match" : 1
      }
   }
}

如您所见,我需要每个应该组的 bool 结果为 TRUE。在 ElasticSearch 6 中可以做到吗?谢谢。

最佳答案

我会将这两个 block 作为 must bool 查询的情况分开。

{
   "query": {
      "bool": {
         "must: [
             {
                "bool": {
                    "should": [
                        { A1 },
                        { A2 },
                        { A3 },
                    ],
                    "minimum_should_match" : 1
                }
             },
             {
                "bool": {
                    "should": [
                        { B1 },
                        { B2 },
                        { B3 },
                    ],
                    "minimum_should_match" : 1
                }
             }
         ]
      }
   }
}

关于Elasticsearch multi should 查询多个minimum_should_match,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59893320/

相关文章:

amazon-web-services - 为ElasticSearch集群增加磁盘空间的最佳方法是什么?

ruby-on-rails - ElasticSearch Rails - 设置自定义分析器

grails - com.easytha.Student条目中的Grails-null ID(发生异常后不要刷新Session)

elasticsearch - Elasticsearch错误解释验证API

elasticsearch - 在 Elasticsearch 中包含查询或部分匹配

elasticsearch - 图片不为空时评分-elasticsearch-1.7

spring-boot - 单元测试时如何模拟ElasticsearchOperations(spring-data-elasticsearch v.4.0.3)

Elasticsearch索引数据库表列结构

elasticsearch - 主节点发生故障时通过Java API进行Elasticsearch集群连接

elasticsearch - 使用ElasticSearch聚合获取完整文档