如何在Elasticsearch中查找类似的文档

时间:2018-02-15 03:48:16

标签: elasticsearch similarity

我的文档由使用各种fields组成。现在给出一个输入文档,我想使用输入文档字段找到similar documents。我怎样才能实现它?

3 个答案:

答案 0 :(得分:1)

您还没有提到您的字段类型。一般方法是在copy_to查询中使用catch all字段(使用more like this)。

答案 1 :(得分:1)

{
    "query": {
        "more_like_this" : {
            "ids" : ["12345"],
            "fields" : ["field_1", "field_2"],
            "min_term_freq" : 1,
            "max_query_terms" : 12
        }
    }

}

您将获得与ID 12345类似的文档。在这里,您只需要指定ID和字段,如标题,类别,名称等,而不是它们的值。

这是另一个没有id的代码,但是你需要指定带有值的字段。示例:获取具有类似标题的类似文档: elasticsearch很快

{
    "query": {
        "more_like_this" : {
            "fields" : ["title"],
            "like" : "elasticsearch is fast",
            "min_term_freq" : 1,
            "max_query_terms" : 12
        }
    }

}

您可以添加更多字段及其值

答案 2 :(得分:0)

{
            "query": {
                "more_like_this" : {
                    "fields" : ["first name", "last name", "address", "etc"],
                    "like" : "your_query",
                    "min_term_freq" : 1,
                    "max_query_terms" : 12
                }
            }

 }  

将所有内容放入your_query。您可以增加或减少min_term_freqmax_query_terms