【发布时间】:2014-01-18 10:19:14
【问题描述】:
我对 Elasticsearch 很陌生,所以这是我的问题。 我想用 elasticsearch 做一个搜索查询,并想用多个词过滤。
如果我想搜索用户“tom”,那么我想要用户“isActive = 1”、“isPrivate = 0”和“isOwner = 1”的所有匹配项。
这是我的搜索查询
"query":{
"filtered": {
"query": {
"query_string": {
"query":"*tom*",
"default_operator": "OR",
"fields": ["username"]
}
},
"filter": {
"term": {
"isActive": "1",
"isPrivate": "0",
"isOwner": "1"
}
}
}
}
当我使用 2 个术语时,它就像一个魅力,但当我使用 3 个术语时,它不会。
感谢您的帮助!
【问题讨论】:
-
真正的答案可以在stackoverflow.com/a/46383259/308851 找到——它是过滤器下的术语对象列表,从@ 中可以看出根本没有 987654322@ 因为 filter 的值是一个 single 术语对象。
标签: elasticsearch