【发布时间】:2017-05-13 03:33:20
【问题描述】:
我想在 Elasticsearch 中执行以下查询
SELECT * FROM TABLE WHERE feed_id =1 AND brand='Samsung' OR brand='Apple iPhone'
我为此使用了这个 JSON 查询
``
"bool" : {
"should":[
{
"multi_match":
{
"query":"LG",
"operator":"and",
"fields":"brand"
}
},
{
"multi_match":
{
"query":"Samsung",
"operator":"and",
"fields":"brand"
}
},
{
"multi_match":
{
"query":"Nokia",
"operator":"and",
"fields":"brand"
}
}
],
"filter": {
"bool": {
"must": [
{ "term": { "feed_id":1}}
]
}
}
}``
这会返回所有结果..
这是我的地图
"model": {
"type": "text",
"fields": {
"autocomplete": {
"type": "text",
"analyzer": "autocomplete"
},
"keyword": {
"type": "keyword"
}
}
}
但是,当我删除“过滤器”术语时,我会得到想要的结果。
我的查询有什么问题?
我使用的是 ES 5.0
【问题讨论】:
-
您能否提供包含在
brand和feed_id映射中的完整映射?
标签: elasticsearch