Sé que en elasticsearch, podemos tener child/parent relationships entre documentos.Muchas a muchas relaciones en elasticsearch
Y luego, cuando se indexa, puedo pasar el ID de padre para que los documentos hijos y padres están vinculados:
$ curl -XPUT localhost:9200/blogs/blog_tag/1122?parent=1111 -d '{ "tag" : "something"}'
¿Hay alguna forma para modelar una relación de muchos a muchos en elasticsearch?
datos es reside en una base de datos MySQL con el siguiente esquema:
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.
Esta es actualmente mi asignación para account
(disculpen la notación de matriz, estoy usando Elastica en PHP para hablar con mi servidor 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')
el problema con este enfoque es que si un grupo se elimina del índice, que tendrá que pasar por cada cuenta y eliminar el ID de grupo de cada cuenta. Esto parece ser un poco ineficiente para mí. También supongo que esto no sería un problema al usar las relaciones hijo/padre de elasticsearch.
¿Hay alguna forma de modelar relaciones de muchos a muchos en elasticsearch?