带有AND条件的ElasticSearch

时间:2017-10-04 04:59:01

标签: elasticsearch elasticsearch-5

我尝试使用弹性搜索实现搜索,但有一些问题:

我有什么

我正在尝试实施ElasticSearch I' 2以下字段:

1)搜索词(TextField)

2)城市名称(文本字段)

现在我想要的是,如果用户输入两个值,那么它必须同时搜索(AND条件)否则如果用户输入搜索词,则它仅搜索搜索词或者如果城市则搜索仅城市。

我正在做什么

"bool" : {
"should": [
    { 
    "multi_match": {
        "query":   '"'+keyword.toLowerCase()+'"',
        "fields": 
        [ 
            "title", "desc" 
        ]
    }
    }, 
    { 
    "match": 
    { 
        "city": city.toLowerCase() 
    }
    }  
],

}

但它没有按照OR进行搜索。

任何帮助非常感谢。

先谢谢

Randheer

1 个答案:

答案 0 :(得分:0)

如果您想要匹配所有条件,您可以使用" must"而不是"应该"。