Как постепенно обновлять вложенные объекты в asticsearch?
У меня есть 2 типа документов (в обычной форме в реляционных БД):
1: сообщение (с полями заголовка, текста и автора)
2: комментарий (с полями text, author, post_id)
У меня есть только один тип эластичного (пост), который объединяет каждый пост со всеми комментариями к ним во вложенной форме.
Я хочу индексировать посты с комментариями к нему как вложенные объекты для уменьшения времени ответа на запросы, но это значительно увеличит стоимость индексации, если я переиндексирую весь "пост" документ каждый раз, когда добавляется новый "комментарий", как я могу эффективно его обрабатывать? Для меня приемлемо иметь данные комментариев с задержкой в 1 час.
На самом деле это три вопроса:
1 - как я могу обновить документ публикации только с добавленными данными комментариев. (без необходимости перестраивать весь почтовый документ и отправлять его в эластичный)
2- как я могу объединить команды индекса, которые были связаны с документом, и отправить его как одну единственную команду в эластичный?
3- Является ли речной плагин решением этих проблем? это индексировать комментарии без необходимости реконструировать весь почтовый документ? объединяет ли он все обновления, связанные с одним документом, и применяет его с одним запросом индекса?
1 ответ
Я думаю, что этот пост отвечает на ваши вопросы: эластичный поиск, возможно ли обновить вложенные объекты, не обновляя весь документ?
Наличие нескольких элементов для обновления может быть сделано с помощью массового API
Нет реки, которая могла бы помочь вам не переиндексировать весь документ. С вложенными документами вы всегда переиндексируете весь документ. Если это часто случается и становится проблемой, пути родитель-потомок - это путь.