So che in elasticsearch, possiamo avere child/parent relationships tra i documenti.Molte a molte relazioni in elasticsearch
E poi, durante l'indicizzazione, posso passare l'ID genitore in modo che i documenti secondari e principali sono legate:
$ curl -XPUT localhost:9200/blogs/blog_tag/1122?parent=1111 -d '{ "tag" : "something"}'
Esiste un modo per modellare una relazione molti a molti in elasticsearch?
dati è risiede in un database MySQL con il seguente 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.
Questa è attualmente la mia mappatura per account
(scusate la notazione di matrice, io sto usando Elastica in PHP per parlare con il mio server elasticsearch) :
**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')
il problema di questo approccio è che se un gruppo viene eliminato dall'indice, ho bisogno di passare attraverso ogni account e cancellare l'ID del gruppo da ogni account. Questo sembra essere un po 'inefficiente per me. Presumo anche che questo non sarebbe un problema quando si usano le relazioni figlio/genitore di elasticsearch.
Esiste comunque la possibilità di modellare relazioni molti-a-molti in elasticsearch?