Elasticsearch против MongoDB - Стратегия индексирования - PullRequest
0 голосов
/ 19 марта 2019

Я знаком со стратегией индексирования и моделирования данных в Elasticsearch. Предположим, у нас есть 3 поля в индексе Elasticsearch, а именно _id, name, referenceId (UUID). _id - это фактический идентификатор в индексе. Я хочу сделать, содержит поиск по имени поля и регистронезависимый поиск по referenceId. Обычно я создаю собственный анализатор с ngram tokenizer в поле имени, которое решает проблему поиска. Я установлю отображение для referenceId в качестве ключевого слова.

{
  name: {
    ngram
  }
  referenceId : {
    keyword  
  }
}

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

Вопросы: 1. По умолчанию MongoDB не создает индексы ни для каких полей. Таким образом, запрос к полю имени будет медленным без индекса. Я думаю, что индекс одного поля подойдет для поля имени, где я могу сделать, содержит поиск. Я прав?

  1. Какой тип индекса лучше всего подходит для referenceId? Я просто собираюсь сделать точный поиск совпадений с учетом регистра. Я думаю, что создание индекса с одним полем создаст много данных. Выполнение поиска без индекса сделает полное сканирование. Какое эффективное решение здесь?
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...