我尝试使用弹性搜索实现搜索,但有一些问题:
我有什么
我正在尝试实施ElasticSearch I' 2以下字段:
1)搜索词(TextField)
2)城市名称(文本字段)
现在我想要的是,如果用户输入两个值,那么它必须同时搜索(AND条件)否则如果用户输入搜索词,则它仅搜索搜索词或者如果城市则搜索仅城市。
我正在做什么
"bool" : {
"should": [
{
"multi_match": {
"query": '"'+keyword.toLowerCase()+'"',
"fields":
[
"title", "desc"
]
}
},
{
"match":
{
"city": city.toLowerCase()
}
}
],
}
但它没有按照OR进行搜索。
任何帮助非常感谢。
先谢谢
Randheer
答案 0 :(得分:0)
如果您想要匹配所有条件,您可以使用" must"而不是"应该"。