我有几个“应该”子句的查询:
{
"query": {
"filtered": {
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "<condition1>"
}
},
{
"query_string": {
"query": "<condition1>"
}
}
]
}
},
}
},
"size": 1000,
"sort": [
{
"@timestamp": {
"order": "asc"
}
}
]
}
如何找出由condition1产生的查询结果,以及由condition2产生的查询结果?是否可以为不同条件注入(inject)具有不同值的字段,或以其他任何方式区分匹配?
最佳答案
您可以使用named queries来实现。
{
"query": {
"bool": {
"should": [
{
"query_string": {
"query": "<condition1>",
"_name": "sub_query_1"
}
},
{
"query_string": {
"query": "<condition1>",
"_name": "sub_query_2"
}
}
]
}
}
}
然后,您的结果将包含一个
matched_filters
数组,其中包含sub_query_1
,sub_query_2
或两者。更新
播放链接:https://www.found.no/play/gist/af1a1fa2b5cf3aa279b1
关于elasticsearch - 如何区分几个应句的命中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21253906/