我在 Elasticsearch 中对文档进行建模时遇到问题,而关系数据库中的外键可以很轻松地解决我的问题。我越接近尝试建立亲子关系,但我的案例有多个父母对同一份文件(我可能会以错误的方式看待它)
考虑以下来自类型 person:
doc1 的 3 个文档:
{
_id: 10
"source":{
"first_name": "child1_first_name",
"last_name": "child1_last_name",
"age" : 10,
"phone": "0505055050",
.
.
"mother":{
"id": 100
"firt_name": "mother1",
"last_name": "last_name1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
文档2:
{
_id: 11
"source":{
"first_name": "child2_first_name",
"last_name": "child2_last_name",
"age" : 12,
"phone": "878787878",
.
.
"mother":{
"id": 100
"firt_name": "mother1",
"last_name": "last_name1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
文档3:
{
_id: 100
"source":{
"first_name": "mother1",
"last_name": "last_name1",
"age" : 40,
"phone": "12212121212",
.
.
"mother":{}
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是当母亲更新她的姓氏或名字时。我是否需要找到所有文件,id 100是他们的母亲,并将他们的内部文件更改为正确的名字和姓氏?
这只是一个例子,我的情况是我需要用他们母亲的正确新名字更新 100 多个孩子。在关系数据库中,通过使用外键这会很容易。
我尝试使用此参考,但找不到解决我的问题的方法。
任何想法?
看起来你在寻找这个:Elasticsearch 中的父子文档 https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child.html
因此,您首先需要调整 ,mapping以便mother可以用作父项并用作类型本身 -> 有关更多信息,请参阅https://www.elastic.co/guide/en/elasticsearch/guide/current/parent-child-mapping。 html
然后按照https://www.elastic.co/guide/en/elasticsearch/guide/current/indexing-parent-child.html中所述进行索引。
PUT /index_name/child/10?parent=100
Run Code Online (Sandbox Code Playgroud)
现在对父文档的更改应该会导致所有子文档的更改。
新方面:这个插件可能对解决方案很有趣:http://siren.solutions/relational-joins-for-elasticsearch-the-siren-join-plugin/
| 归档时间: |
|
| 查看次数: |
6950 次 |
| 最近记录: |