我有两种类型,例如弹性索引中的员工和城市,
类型员工的文档结构类似于
[{
"_index": "zase",
"_type": "Employees",
"_id": "100",
"_score": 1,
"_source": {
"sid": 100,
"name": "San Andreas",
"stageid": 0
}
},
{
"_index": "zase",
"_type": "Employees",
"_id": "101",
"_score": 1,
"_source": {
"sid": 101,
"name": "Zack",
"stageid": 0
}
}]
Type Cities的文档结构如Follows,
[{
"_index": "zase",
"_type": "Cities",
"_id": "1",
"_score": 1,
"_source": {
"sid": 1,
"name": "Virginia",
"EmployeesID": [
0:100,
1:125,
2:143
]
}
},
{
"_index": "zase",
"_type": "Cities",
"_id": "2",
"_score": 1,
"_source": {
"sid": 2,
"name": "New Field",
"EmployeesID": [
0: 110
]
}
}]
使用Cities name' Virginia'查询弹性搜索时,我需要获取Employees信息,其中Cities.EmployeesID == Employees.sid,
在弹性搜索中,这种跨越不同类型的RDBMS加入操作是否可行? 任何帮助将不胜感激。
答案 0 :(得分:0)
ES尚不支持JOIN查询,虽然正在讨论issue和尝试提供该功能的pull request,但目前某些冲突导致工作停滞不前。
与此同时,对于您的简单用例,您可以使用elasticsearch-sql插件来实现您的目标。
答案 1 :(得分:0)
如果这是数据检索的主要用例,您也可以考虑使用parent-child关系。