我很难弄清楚如何使用elsticsearch dis_max查询和过滤器。
当我这样做时:
{
"query": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}],
"filter": {
//Term filter
}
}
}
}
它说 [dis_max]查询不支持[过滤器] 。但我可以使用带有过滤别名的dis_max查询。
Ex:我创建了一个带有如下定义的过滤器的别名,并在执行dis_max查询时使用它,并且它可以很好地工作。
{
"add" : {
"index" : "test1",
"alias" : "alias1",
"filter" : { //Term filter }
}
}
因此,应该在不创建别名的情况下实现此目的。任何人都可以告诉我该怎么做。
答案 0 :(得分:7)
如果有人正在寻找答案,我最后在必须类中使用bool查询和我的dis_max查询,并简单地过滤为bool查询的过滤器部分。
例如:
{
"query": {
"bool": {
"must": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}]
}
}
"filter": {
//Term filter
}
}
}
}