如何 运行 使用存储文档中的属性进行查询?

How to run a query with the properties from a stored document?

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

您可以使用 more like this 查询并要求 ES 检索与给定文档类似的文档(例如 uid=1 的用户)(无需先检索该文档)。

所以在下面的 like 数组中,您只需给出对需要用作 "more like this" 查询参考的文档的引用(您可以提供多个文档,也可以逐字爱好字符串)。 ES 将检索该文档,检查 hobbies 字段并对所有其他文档执行 "more like this 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
              }
            ]
        }
    }
}