Lucene - несколько или много индексов - PullRequest
3 голосов
/ 23 декабря 2011

Лучше ли использовать

  • множество индексов (например, для каждого пользователя, если это позволяет ваше приложение) в Lucene
  • или только один, с каждым документом в int

... если подумать:

  • производительность
  • дисковое пространство
  • здоровье

Я использую эластичный поиск, поэтому я использую Lucene.

1 Ответ

5 голосов
/ 23 декабря 2011

В Elastic Search, я думаю, основываясь на вашей информации, я бы использовал 1 индекс. Насколько я понимаю, пользователи ищут там только свои документы, и эти документы кажутся относительно похожими.

Производительность - При поиске вы можете использовать Отфильтрованный запрос для фильтрации только тех документов, которые соответствуют пользователю. Фильтр идентификатора пользователя может кэшироваться и быстро.

Масштабируемый - В Elasticsearch вы контролируете сегментирование и репликацию на уровне индекса. Elasticsearch может обрабатывать большое количество индексов, я просто думаю, что настройка соответствующих сегментов и репликаций может быть полезна для всего индекса.

В одном индексе вы все еще можете легко стирать данные (см. удалить по запросу ), и вам не нужно беспокоиться о том, чтобы увидеть другие данные, если вы не напишите свои запросы неправильно. Отфильтрованный запрос с такими фильтрами приводит только к тем, которые связаны с идентификатором пользователя, очень просто. Схожа по сложности с поиском другого индекса для пользователя.

Ваши точные потребности могут лучше соответствовать другому подходу. Исходя из того, что у меня есть, я бы выбрал один индекс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...