当要查找的数据为空时,是否需要从弹性搜索查询中删除"query"部分?



我有一个查询,它在两个字段中搜索给定的术语。术语来自UI中的一个输入字段。如果输入字段为空,则查询不返回任何数据,而我希望返回所有数据。

一个解决方案是从_search查询中删除查询部分,但之后我需要动态地组合查询部分。

推荐的方法是什么?

我的查询:

{
 "query":{
    "filtered":{
        "query":{
          "bool":{
              "should":
                  [
                    {
                      "match":{
                          "lastName":{
                            "query": "Gevaert",
                            "fuzziness": 0.2
                          }           
                      }
                    },
                    {
                      "match":{
                          "organization":{
                            "query": "Gevaert",
                            "fuzziness": 0.2
                          }           
                      }
                    }
                  ]
          }
        }
        ,
        "filter":{
            "term":{
                "category.id":"CAT102"
            }
        }
    }
 }
}

您也可以将"zero_terms_query":"all"添加到匹配查询中,在这种情况下,如果没有找到匹配,则所有匹配都将返回

最新更新