Elasticsearch:如何在过滤器中使用Dismax查询

ManuAc

我很难弄清楚如何将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 }
    }
 }

因此,应该在不创建别名的情况下实现某种方式。谁能告诉我该怎么做。

ManuAc

如果有人在寻找答案,我最终将bool查询与must类中的dis_max查询一起使用,并且仅作为bool查询的filter部分进行过滤。

例如:

{
    "query": {
        "bool": {
            "must": {
                "dis_max": {
                    "queries": [{
                         "multi_match": {}
                     },
                     { 
                         "multi_match": {}
                     }]
                }
            }
            "filter": {
                //Term filter
            }           
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章