【问题标题】:terms query does not support multiple fields术语查询不支持多个字段
【发布时间】:2019-01-23 20:20:38
【问题描述】:

有没有办法编写一个 OR 查询,使用带有 field1 的术语匹配(或)使用带有 field2 的术语匹配...... 收到消息“[terms] 查询不支持多个字段”...应该有办法:-

       "constant_score":{  
          "filter":{  
             "bool":{  
                "should":{  
                   "terms":{  
                      "field1 ":[  
                         "017M0",
                         "000XXJ0900"
                      ],
                      "field2":[  
                         "017M0",
                         "000XXJ0900"
                      ]
                   }                       
                }
             }
          }
       }

【问题讨论】:

    标签: json elasticsearch search


    【解决方案1】:

    使用 should 作为 OR 子句并定义多个术语,如下所示..解决了我的问题。

                "bool":{  
                      "should": [
                        {
                          "terms": {
                            "field1": [ "017M0v", "000XXJ0900v" ]
                          }
                        },
                        {
                          "terms": {
                            "field2": [ "017M0", "000XXJ0900"]
    
                          }
                        }
                      ]
                    }   
    

    【讨论】:

      猜你喜欢
      • 2022-01-03
      • 2021-05-03
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 2023-03-26
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多