【发布时间】:2016-06-23 12:05:43
【问题描述】:
所有人都希望使用过滤后的查询,其中结果应包含来自“query_string”以及应用的“term - filter”的数据。
GET blog/_search
{
"query": {
"filtered": {
"query": {
"query_string": {
"fields": [ "description" ],
"query": "a" // or just ""
}
},
"filter": {
"terms": {
"topic_id": [
10
]
}
}
}
}
}
预期结果是:
- 所有包含字母“a”或“”且 topic_id 为 10 的博客记录。
- 还有 topic_id 为 10 的其余记录,即使描述为空白/空。
所以最终结果应该是 - 得分较高的匹配记录应该排在最前面,然后是与过滤器中的“topic_id”匹配的记录。
【问题讨论】:
-
当用“a”搜索时,我只得到描述中包含字母“a”的数据,但我也需要topic_id为10的空(“”)描述的数据。同样当用空白(“”)搜索时,没有得到任何数据。但我希望数据的描述为空,topic_id 为 10。
-
问题中提到了我正在尝试的查询。
-
这可能是helpful
-
@keety,您提供的链接无济于事,因为我希望根据
query添加的两个匹配项以及空搜索但使用topic_id值的过滤器。我在问题中提到的条件 1。 -
@KunalDethe 检查我的答案。我认为这就是你要找的。希望对你有帮助
标签: php elasticsearch