【问题标题】:I'm having some problems with a query, I have a nested document我在查询时遇到了一些问题,我有一个嵌套文档
【发布时间】:2021-09-03 04:56:54
【问题描述】:
"query":{
"nested": {
  "path":  "lang",
  "query": {
    "query_string": {
      "default_field": "lang.name", 
      "query": "*Bat*"
    
    }
   }
  }
}

它正在工作,但我也想在product_model 中搜索(它类似于嵌套路径)。如何合并这两个查询?谢谢。

 "query":{
"nested": {
  "path":  "product_model",
  "query": {
    "query_string": {
      "default_field": "product_model.keyword", 
      "query": "*Bat*"
    
    }
  }
}
}

【问题讨论】:

    标签: php elasticsearch nested


    【解决方案1】:

    您可以使用bool query 将两者结合起来

    如果您想根据 product_model 或 lang 中的值过滤文档,则使用 should 子句(OR)

    如果您想根据 product_model 和 lang 中的值过滤文档,则使用 must 子句(AND)

    应该举例

    {
      "query": {
        "bool": {
          "should": [
            {
              "nested": {
                "path": "lang",
                "query": {
                  "query_string": {
                    "default_field": "lang.name",
                    "query": "*Bat*"
                  }
                }
              }
            },
            {
              "nested": {
                "path": "product_model",
                "query": {
                  "query_string": {
                    "default_field": "product_model.name",
                    "query": "*Bat*"
                  }
                }
              }
            }
          ],
          "minimum_should_match": 1
        }
      }
    }
    

    必须举例

    {
      "query": {
        "bool": {
          "must": [
            {
              "nested": {
                "path": "lang",
                "query": {
                  "query_string": {
                    "default_field": "lang.name",
                    "query": "*Bat*"
                  }
                }
              }
            },
            {
              "nested": {
                "path": "product_model",
                "query": {
                  "query_string": {
                    "default_field": "product_model.name",
                    "query": "*Bat*"
                  }
                }
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-12
      • 1970-01-01
      • 2013-10-08
      • 2022-11-23
      • 1970-01-01
      • 2021-01-22
      • 2019-12-04
      • 2020-04-29
      相关资源
      最近更新 更多