更像这样的Elasticsearch会返回太多文档

问题描述 投票:-1回答:2

我有这样的文件:

{
title:'...',
body: '...'
}

我希望获得与特定文档类似的文档超过90%。我使用过这个查询:

query = {
    "query": {
        "more_like_this" : {
            "fields" : ["title", "body"],
            "like" : "body of another document",
            "min_term_freq" : 1,
            "max_query_terms" : 12
        }
    }
}

如何更改此查询以检查与指定doc的90%相似性?

elasticsearch elasticsearch-5
2个回答
0
投票

看看Query Formation Parameter minimum_should_match


0
投票

您应该指定minimun_should_match

minimum_should_match

形成析取查询后,此参数控制必须匹配的术语数。语法与最小值匹配的语法相同。 (默认为“30%”)。

它使用此形成查询

MLT查询只是从输入文档中提取文本,对其进行分析,通常在字段中使用相同的分析器,然后选择具有最高tf-idf的前K个术语,以形成这些术语的析取查询

因此,如果您想提高标题字段,则应增加标题字段,因为标题包含术语频率/反向文档频率中的大多数术语。应该提高结果,因为它具有更多相关性。您可以将标题字段提高1.5。

请参阅this文档以获取more_like_this查询中的referenceren

© www.soinside.com 2019 - 2024. All rights reserved.