Как постепенно обновлять вложенные объекты в asticsearch?

У меня есть 2 типа документов (в обычной форме в реляционных БД):

1: сообщение (с полями заголовка, текста и автора)

2: комментарий (с полями text, author, post_id)

У меня есть только один тип эластичного (пост), который объединяет каждый пост со всеми комментариями к ним во вложенной форме.

Я хочу индексировать посты с комментариями к нему как вложенные объекты для уменьшения времени ответа на запросы, но это значительно увеличит стоимость индексации, если я переиндексирую весь "пост" документ каждый раз, когда добавляется новый "комментарий", как я могу эффективно его обрабатывать? Для меня приемлемо иметь данные комментариев с задержкой в ​​1 час.

На самом деле это три вопроса:

1 - как я могу обновить документ публикации только с добавленными данными комментариев. (без необходимости перестраивать весь почтовый документ и отправлять его в эластичный)

2- как я могу объединить команды индекса, которые были связаны с документом, и отправить его как одну единственную команду в эластичный?

3- Является ли речной плагин решением этих проблем? это индексировать комментарии без необходимости реконструировать весь почтовый документ? объединяет ли он все обновления, связанные с одним документом, и применяет его с одним запросом индекса?

1 ответ

Я думаю, что этот пост отвечает на ваши вопросы: эластичный поиск, возможно ли обновить вложенные объекты, не обновляя весь документ?

Наличие нескольких элементов для обновления может быть сделано с помощью массового API

Нет реки, которая могла бы помочь вам не переиндексировать весь документ. С вложенными документами вы всегда переиндексируете весь документ. Если это часто случается и становится проблемой, пути родитель-потомок - это путь.

Другие вопросы по тегам