Elasticsearch запрашивая друзей друзей - PullRequest
0 голосов
/ 24 октября 2018

Контекст: У нас есть две сущности / индексы

users: {
  properties: {
    id: {
      type: 'keyword'
    }
  }
}

и

connections: {
  properties: {
    user1: {
      type: 'keyword',
    },
    user2: {
      type: 'keyword',
    }
  }
}

A Соединение сущность связывает две Пользователи как друзья.

Вопрос

Для данного пользователя, как я могу найти друзей друзей?Пользователь 1 - друг с Пользователем 2, а Пользователь 2 - с Пользователем 3. Таким образом, Пользователь 3 является другом друга для Пользователя 1.

Ограничения:

  • денормализация не может быть реализована (пока)

  • Невозможно использовать отношение «родитель-ребенок», так как для соединения потребуется два родителя или мне потребуется дублироватьвсе коллекции для его работы

Единственное решение, которое приходит на ум, - это присоединения на стороне приложения, но это может привести к очень большим запросам и проблемам разбивки на страницы.

есть ли другой способ найти друзей в друзьях только с помощью запросов / агрегации?

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