ElasticSearch реляционные запросы? - PullRequest
0 голосов
/ 09 ноября 2019

У меня есть два документа ES (в качестве примеров):

{
    "id": "person_1",
    "name": "John"
}

{
    "id": "organisation",
    "employeesById": [ "person_1" ]
}

Можно ли выполнить запрос, который возвращает все организации, в которых есть сотрудник с именем «Джон», или мне нужно денормализоватьструктуру данных выше и делайте employeeById.employee.name?

1 Ответ

0 голосов
/ 10 ноября 2019

Не зная о вашем случае использования, я бы посоветовал вам попытаться денормализовать. Например,

{
  "id": "person_1",
  "name": "John",
  "organisation": "organisation_id"
}

Если (1) оба документа хранятся в одном и том же индексе и (2) человек очень часто меняет организацию, сохранение согласованности денормализованных документов было бы более сложным (большое количество связанных документов для поискаи обновлять). В этом случае я бы предложил определить личность-организацию отношения, используя тип данных Join ( ссылка на документацию Elastic ) и используя запросы родительского соединения для запуска поиска ( ссылка на документацию Elastic *)1007 *).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...