删除匹配查询

时间:2016-11-30 11:22:27

标签: elasticsearch

我想删除匹配查询中相关性最低的文档。除了得分t还有其他方法吗?

使用案例

假设我们有: -

指数:办公室 doctype:员工 post(field):不同文件的客户主管,客户经理,会计师,主要负责人等。

现在我搜索"帐户"在匹配" post"中的所有文档的匹配查询中领域。

让我们说"主要的" " post"的价值上述doc中的字段是“最不相关的”。

我想在搜索结果列表中排除那些非常不相关的匹配项。

我尝试使用结果得分,但我认为这是不可行的。除了得分之外,还有其他方法可以达到这个目的吗?

1 个答案:

答案 0 :(得分:0)

是的,您可以通过在查询中包含已过滤的查询来执行此操作:

POST _search
{  
   "query":{  
      "filtered":{  
         "filter":{  
            "not":{  
               "term":{  
                  "post":"chief acc"
               }
            }
         }
      }
   }
}

如果您使用的是ES 5.0,则必须使用must_not过滤器而不是not

"must_not" : {
        "term" : { "post" : "chief acc" }
      }

也许您也可以查看此SO。希望它有所帮助!