我在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以获得完全匹配。
答案 0 :(得分:0)
似乎无法在ES中实现。我已切换到应用程序级联接来实现此目的。由于在这种情况下,主要的数据源是RDBMS。在RDBMS中很容易实现这一点。出于规模考虑,我正在考虑在MySQL查询之上构建OLAP管道。