我很难弄清楚如何将elsticsearch dis_max查询与过滤器一起使用。
当我这样做时:
{
"query": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}],
"filter": {
//Term filter
}
}
}
}
它说[dis_max]查询不支持[filter]。但我可以将dis_max查询与经过过滤的别名一起使用。
例如:我创建了一个别名,其过滤器定义如下,并在执行dis_max查询时使用相同的别名,并且效果很好。
{
"add" : {
"index" : "test1",
"alias" : "alias1",
"filter" : { //Term filter }
}
}
因此,应该在不创建别名的情况下实现某种方式。谁能告诉我该怎么做。
如果有人在寻找答案,我最终将bool查询与must类中的dis_max查询一起使用,并且仅作为bool查询的filter部分进行过滤。
例如:
{
"query": {
"bool": {
"must": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}]
}
}
"filter": {
//Term filter
}
}
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句