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

标签 elasticsearch elasticsearch-painless

假设我们有一个包含docs的索引,其中包含以下字段:uid和hobbies。如何运行查询以查找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
              }
            ]
        }
    }
}

关于elasticsearch - 如何使用存储的文档中的属性运行查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574152/

相关文章:

elasticsearch - 弹性观察者电子邮件中的日期数学

elasticsearch - 如何在 Elasticsearch 重新索引无痛脚本中生成 UUID

postgresql - PredictionIO UniversalRecommender Elasticsearch 错误

cakephp - CakePHP 3返回重点 Elasticsearch

elasticsearch - 尝试从低级 Elasticsearch 嵌套查询获取原始 json 响应时出错

elasticsearch - 支持无痛语言的最小版本的kibana是什么

elasticsearch - 使用其他搜索对弹性结果进行后处理(从Solr迁移)

elasticsearch - ElasticHQ : Unable to Connect to Server! 收到状态码:0

node.js - 我无法过滤也无法聚合通过 LogStash 保存到 ElasticSearch 的文档

arrays - 在Elasticsearch中轻松检索数组的最后一个元素的信息