ElasticSearch:在文档中查找相互匹配

时间:2019-10-22 15:20:46

标签: elasticsearch

我在ElasticSearch中有一个简单的文档,它表示“喜欢”

{
    "actorUserProfileId": Int,
    "userProfileId": Int
}

,即actorUserProfileId是参与者配置文件的配置文件ID,而用户配置文件ID是目标配置文件的配置文件ID。我想列出所有相互喜欢的个人资料。

if y is the actorUserProfileId然后

    actorUserProfileId: x
    userProfileId: y

    actorUserProfileId: y
    userProfileId: x

这里userProfileId = x是相互匹配的。我在ES中尝试了该脚本,但无法正常工作

{
    "query": {
        "bool": {
            "filter": {
                "script": {
                    "script": {
                        "source": "doc['actorUserProfileId'].value == doc['userProfileId'].value",
                        "lang": "painless"
                    }
                }
            }
        }
    }
}

我的问题是,如果不使用服务器直接查询es是否可以实现结果。借助服务器,我可以从第一个查询中创建id的结果,并查询Elastic以获得完全匹配。

1 个答案:

答案 0 :(得分:0)

似乎无法在ES中实现。我已切换到应用程序级联接来实现此目的。由于在这种情况下,主要的数据源是RDBMS。在RDBMS中很容易实现这一点。出于规模考虑,我正在考虑在MySQL查询之上构建OLAP管道。