0

假设我们有一个包含以下字段的文档索引:uid 和 hobbies。如何运行查询以查找 1 和其他用户之间的相似性,而不必先检索用户,然后再根据他的爱好运行新查询?

4

1 回答 1

2

您可以使用更像此查询的方式并要求 ES 检索类似于给定文档的文档(例如带有 的用户uid=1)(无需先检索该文档)。

因此,在下面的like数组中,您只需提供对需要用作“更像这样”查询的参考的文档的引用(您可以提供多个文档以及逐字的爱好字符串)。ES 将检索该文档,检查该hobbies字段并对所有其他文档执行“更像此爱好”查询。

POST /users/user/_search
{
    "query": {
        "more_like_this" : {
            "fields" : ["hobbies"],
            "like" : [
              {
                "_index" : "users",
                "_type" : "user",
                "_id" : "1"                <---- fill in the UID of the user here
              }
            ]
        }
    }
}
于 2016-11-21T15:31:23.783 回答