0
比方说,我们有一个包含以下字段的文档索引:uid和业余爱好。我如何运行查询来查找1和其他用户之间的相似性,而不必先检索用户,然后用他的爱好运行新的查询?如何使用存储文档中的属性运行查询?
比方说,我们有一个包含以下字段的文档索引:uid和业余爱好。我如何运行查询来查找1和其他用户之间的相似性,而不必先检索用户,然后用他的爱好运行新的查询?如何使用存储文档中的属性运行查询?
您可以使用more like this查询并要求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
}
]
}
}
}