Как улучшить скорость поиска вasticsearch (мой основной запрос: запрос термина и запрос фразы)? - PullRequest
0 голосов
/ 22 мая 2019

У меня есть около 165G данных, и я сохранил их на трех серверах эластичного поиска (каждый сервер имеет 32G памяти).Общий размер результирующего индекса (с именем my_index) составляет 240,3 ГБ (198030346 документов), причем для индексов используется около 75 ГБ.Индекс my_index имеет три основных сегмента и не содержит фрагментов реплики.

Индекс my_index имеет два поля (имена field1 и field2) с одним и тем же анализатором.Анализатор разделил содержимое на field1 и field2 по пробелам.Документ выглядит как

{
  "field1": "AW110 AW111 AW112 AW113 AW1104 AW1103 AW11023 AW11012 AW1101 AW1102 AW1102 AW1101 AW11032 AW110 AW11032 AW11032",
  "field2": "BP111 BP111 BP111 BP111 BP111 BP1110 BP111s BP111s BP111a BP111as BP1117 BP1119 BP11100 BP11100 BP11100 BP11111 BP111009 BP11122"
}

Мой основной запрос - term запрос и phrase query.Например, я хочу выполнить поиск по всем документам, содержащим термин AW111, или выполнить поиск по всем документам, содержащим фразу AW110 AW111.

. Я попытался повысить скорость поиска:

  1. vm.swappiness установлен на 1.
  2. , чтобы пользователь hjs , который устанавливает asticsearch , мог увеличить размер заблокированной памятибез ограничения.
hjs soft memlock unlimited
hjs hard memlock unlimited
- Enable `bootstrap.memory_lockedit` (set `bootstrap.memory_lock: true` in elasticsearch.yml)
Другая конфигурация
  • Дескрипторы файлов (/etc/security/limits.conf)
hjs soft nofile 65536
hjs hard nofile 65536
  • JVM (config / jvm.options)
-Xms5g
-Xmx5g
  • Виртуальная память редактировать (/etc/sysctl.conf)
vm.max_map_count=655360

Это изображение показывает результат команды top, когда я запускаю несколько term search.Процесс 31283 - это эластичный поиск .

enter image description here

Изображение используется для отображения статуса кластера:

enter image description here

Мой вопрос: Когда я выполняю term query для поиска документов, содержащих определенные термины, вероятно, большое количество документов соответствует термину,Поэтому, когда я ищу много терминов (обычно 10 000–40 000, и я использовал multi search + term query), это требует слишком больших затрат времени, есть ли какое-либо отношение к улучшению скорости поиска?

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