Elasticsearch:如何使用带过滤器的 dismax 查询
Elasticsearch: how to use dismax query with filter
我很难弄清楚如何使用带过滤器的 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 查询与我的 dis_max 查询一起使用 class 并简单地作为 bool 查询的过滤器部分进行过滤。
例如:
{
"query": {
"bool": {
"must": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}]
}
}
"filter": {
//Term filter
}
}
}
}
我很难弄清楚如何使用带过滤器的 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 查询与我的 dis_max 查询一起使用 class 并简单地作为 bool 查询的过滤器部分进行过滤。
例如:
{
"query": {
"bool": {
"must": {
"dis_max": {
"queries": [{
"multi_match": {}
},
{
"multi_match": {}
}]
}
}
"filter": {
//Term filter
}
}
}
}