如何降低Elasticsearch中TF的分数?

时间:2019-07-11 00:35:24

标签: elasticsearch

两个文档:1. "Some Important Company",2. "Some Important Company Important branch"

由于“重要”文档计数较高(许多文档具有“重要”字词),因此在“某些重要公司”上进行搜索

即使第一个文档完全匹配,第二个文档也会获得更高的分数。

所以我的问题是当完全匹配或降低TF分数时如何提高分数?

对于multi_match customerName,我的查询是usedName,但是在这种情况下,usedName都是“”。

1 个答案:

答案 0 :(得分:0)

我假设您的文档字段是使用标准文本分析器或类似工具编制索引的。我将使用match复合查询结合一个match_phrase查询和一个dismax查询。 这样会得到类似的结果:

{
    "query": {
        "dis_max" : {
            "queries" : [
                { "match" : { "myField" : "Some Important Company" }},
                { "match_phrase" : { "myField" : "Some Important Company" }}
            ],
            "tie_breaker" : 0.7
        }
    }
}

match查询中没有“匹配精确短语”的概念。为此,您需要使用match_phrase查询。这就是为什么您在这里将两者结合在一起的原因。使用dis_max,匹配两个查询的文档将得到提升。您可以阅读有关dis_max和match_phrase的更多信息:

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-dis-max-query.html

https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-match-query-phrase.html