我尽量简短。此搜索不适用multi_match
中的搜索关键字。我插入的任何搜索文本我总是得到相同的结果。
如果我删除filtered / filter
,它会给我一个正确的搜索。为什么呢?
GET /catalog/products/_search
{
"from":0,
"size":150,
"query":{
"filtered":{
"query":{
"multi_match":{
"query":"text to search",
"fields":[
"title^5",
"description"
]
},
"filter":{
"and":[
{
"term":{
"category": 2
}
},
{
"not":{
"term":{
"subCategory": 3
}
}
}
]
}
}
}
}
}
答案 0 :(得分:2)
在查询时将过滤器放在同一级别,如下所示:
GET /catalog/products/_search
{
"from":0,
"size":150,
"query":{
"filtered":{
"query":{
"multi_match":{
"query":"text to search",
"fields":[
"title^5",
"description"
]
}
},
"filter":{
"and":[
{
"term":{
"category": 2
}
},
{
"not":{
"term":{
"subCategory": 3
}
}
}
]
}
}
}
}