Ich weiß, dass in elasticsearch, können wir child/parent relationships zwischen Dokumenten haben.Viele zu viele Beziehungen in elasticsearch
Und dann, wenn die Indizierung, kann ich die Eltern-ID übergeben, so dass das Kind und Eltern Dokumente verknüpft sind:
$ curl -XPUT localhost:9200/blogs/blog_tag/1122?parent=1111 -d '{ "tag" : "something"}'
Gibt es trotzdem eine viele zu viele Beziehung in Elasticsearch zu modellieren?
Daten ist residiert in einer MySQL-Datenbank mit dem folgenden Schema:
account
========
id
name
some_property
group
========
id
name
description
account_group
=============
account_id
group_id
primary_group //This is 1 or 0 depending on whether the group is the primary group for that account.
Dies ist derzeit mein Mapping für account
(bitte die Array-Schreibweise entschuldigen, ich Elastica in PHP bin mit meinem Elasticsearch Server zu sprechen) :
**Mapping for account**
'name' => array(
'type' => 'string'),
'some_property' => array(
'type' => 'string'),
'groups' => array(
'properties' => array(
'id' => array('type' => 'integer'),
'primary' => array('type' => 'boolean')
)
),
**Mapping for group**
'name' => array(
'type' => 'string'),
'description'=> array(
'type' => 'string')
Das Problem bei diesem Ansatz ist, dass, wenn eine Gruppe aus dem Index gelöscht wird, muß ich durch jedes Konto gehen und die Gruppen-ID von jedem Konto löschen. Das scheint mir ein bisschen ineffizient zu sein. Ich nehme auch an, dass dies kein Problem wäre, wenn man die Kind/Eltern-Beziehungen von elasticsearch verwendet.
Gibt es sowieso eine Möglichkeit, viele-zu-viele-Beziehungen in elasticsearch zu modellieren?