Подтвердить что ты не робот

Лучший подход к модулю подачи данных, основанному на эластичном поиске?

Я новичок в поиске эластичности и ищу лучшее решение, с помощью которого я могу создать модуль подачи, в котором есть временные каналы, а также группа и комментарий.

Я мало узнал и придумал следующее.

PUT /group
    {
      "mappings": {
        "groupDetail": {},
        "content": {
          "_parent": {
            "type": "groupDetail" 
          }
        },
        "comment": {
          "_parent": {
            "type": "content" 
          }
        }
      }
    }
4b9b3361

Ответ 1

Производительность

  • Родительский/дочерний хранит соответствующие данные в тех же осколках, что и отдельный документ, которые избегают сети;
  • Родитель/ребенок нуждается в процессе соединения при извлечении данных;
  • Вложенный объект хранит внутренний и внешний объекты вместе, как один документ;

Итак, мы можем заключить:

  • Обновление вложенного объекта будет переиндексировать весь индекс, что может очень дорого, если ваш документ большой;
  • Обновление родительского или дочернего только не влияет на другое;
  • Поиск вложенного объекта происходит немного быстро, что позволяет сэкономить процесс соединения;

Предложения

Насколько я понимаю вашу проблему, вы должны использовать parent/child.

  • Когда ваши комментарии в группе становятся все больше и больше, добавление нового комментария все равно будет переиндексировать весь контент, что может быть очень трудоемким;
  • С другой стороны, поиск комментария с родителем/дочерним элементом требует еще одного поиска после нахождения дочернего элемента, что является относительно приемлемым.

Кроме того, вы также должны учитывать скорость поиска комментария по сравнению с добавлением комментария во внимание:

  • Если вам нужно много искать, но немного новых комментариев, возможно, вы можете выбрать вложенный объект;
  • В противном случае выберите parent/child;

Кстати, вы можете объединить оба из них:

  • Когда этот фид активен, используйте parent/child для их хранения;
  • Когда он закрыт, т.е. больше комментариев не может быть добавлено, переместите их в новый индекс с вложенным объектом;

Ответ 2

Если вы не укажете более подробную информацию, отличную от very frequently, вам будет сложно найти рекомендацию. Также вы не указали, как выглядят ваши данные. Комментарий в блоге может происходить редко, даже в горячих дискуссиях. Комментарий/ответ в сообщении форума (который приведет к огромному документу) может сильно отличаться. Я лично начинал с вложенных и видел, как это происходит, но я также не знаю всех требований, так что это может быть очень неправильный ответ.