用弹性搜索进行类似搜索

时间:2016-01-18 10:55:40

标签: elasticsearch

如果我有一张包含很多人的桌子。每个人都有自己的属性,如姓名,社交身份,年龄,性别,孩子的数量......

鉴于A人是40岁男性,有2个孩子。给我所有与A人相似的人。

这是我可以用弹性搜索做的事吗?我正在考虑更多这样的查询https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-mlt-query.html

非常感谢。

1 个答案:

答案 0 :(得分:0)

是的,MLT可以正常工作,您可以像下面的查询一样指定要在其中应用的字段,例如您的情况是年龄,孩子数。您要匹配的任何其他特定字段。这是示例查询-

GET /_search
{
    "query": {
        "more_like_this" : {
            "fields" : ["age", "number_of_children"],
            "like" : 
            {
                "_index" : "people",
                "_type" : "person",
                "_id" : "1"
            },
            "min_term_freq" : 1
        }
    }
}