Как управлять «версиями» документов вasticsearch? - PullRequest
0 голосов
/ 26 октября 2019

Иногда у меня будет новый набор документов, который «заменит» старый набор документов. Я хотел бы по-прежнему иметь доступ к старому набору документов для анализа исторических данных. Тем не менее, я хотел бы в первую очередь искать только новый набор документов.

Одним из решений этой проблемы является создание нового индекса для каждой группы. И только поиск самых последних наборов показателей. Однако тогда будут тысячи индексов, растущих каждый раз, когда происходит обновление. Это оптимальная стратегия или есть другой лучший метод?

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

1 Ответ

0 голосов
/ 27 октября 2019

Встроенная система контроля версий Elastic Search отслеживает только номера версий в проиндексированных документах, не хранит хронологические данные.

Это вам придется реализовать самостоятельно. Вы можете сделать это несколькими способами. 1. Вы можете хранить исторические данные в самом документе

    {
      "id":1,
      "content":"abc",
      "version":[
                    {"timestamp":"2019-10-01","content":""},
                    {"timestamp":"2019-10-02","content":""}
                ]
    }
This will bloat your documents and if content is large will cause performance issue.

2. Вы можете хранить разные документы версий в одном индексе с разными номерами версий.

  {
    "id":1,
    "context":"",
    "version":1
  },
  {
    "id":1,
    "context":"",
    "version":2,
    "Iscurrent":"true"
  }
Вы можете сохранить старую версию в одном индексе как (2), а последнюю версию в отдельном индексе. Итак, два индекса: - старый и новый. Я думаю, что это будет более подходящим для вашей цели
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...