"query": {
"bool": {
"should": [
{
"dis_max": {.........}
}
],
"filter": [
{
"term": {
"city": "default_city"
}
},
{
"term": {
"used_for": "sell"
}
},
{
"terms": {
"category": ["C1","C2"]
}
}
]
}
}
但是,产生的结果还包含“ used_for”字段为“ non-sell”的文档,从而将“ used_for”字段作为关键字类型,从而完全停止产生任何结果。请让我知道我要去哪里错了。
答案 0 :(得分:0)
对于standard analyzer,“非出售”将被存储为两个令牌:“非”和“出售”,因此对“出售”的搜索将匹配。 如果将字段设置为关键字类型,则应该可以解决您的问题,但请记住,搜索必须匹配整个字段,任何空格,并且区分大小写。 如果您切换到whitespace analyzer,则会保留连字符和大小写,但不会保留空格。