Elasticsearch:如何使用带有过滤器的dismax查询
问题描述:
我很难找出如何使用带有过滤器的elsticsearch dis_max查询。Elasticsearch:如何使用带有过滤器的dismax查询
当我这样做:
{
"query": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}],
"filter": {
//Term filter
}
}
}
}
它说[dis_max]查询不支持[过滤器]。但我可以使用dis_max查询和过滤的别名。例如:我使用下面定义的过滤器创建了一个别名,并在执行dis_max查询时使用它,并且它完美地工作。
{
"add" : {
"index" : "test1",
"alias" : "alias1",
"filter" : { //Term filter }
}
}
因此,应该有一些方法可以实现这一点,而无需创建别名。任何人都可以请告诉我该怎么做。
答
如果有人正在寻找答案,我最终在必须类中使用了带有dis_max查询的bool查询,并简单地将其作为bool查询的过滤器部分进行过滤。
例:
{
"query": {
"bool": {
"must": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}]
}
}
"filter": {
//Term filter
}
}
}
}
' “multi_match”:{},' - >' “multi_match”:{}' – RoiHatam