Я пытаюсь улучшить производительность запросов. Для простых запросов требуется около 3 секунд, которые даже не касаются вложенного документа, а иногда и дольше.Elasticsearch улучшает производительность запросов
curl "http://searchbox:9200/global/user/_search?n=0&sort=influence:asc&q=user.name:Bill%20Smith"
Даже без сортировки требуется несколько секунд. Вот подробности кластера:
1.4TB index size.
210m documents that aren't nested (About 10kb each)
500m documents in total. (nested documents are small: 2-5 fields).
About 128 segments per node.
3 nodes, m2.4xlarge (-Xmx set to 40g, machine memory is 60g)
3 shards.
Index is on amazon EBS volumes.
Replication 0 (have tried replication 2 with only little improvement)
Я не вижу каких-либо заметных скачков в CPU/памяти и т.д. Любые идеи, как это можно было бы улучшить?
Спасибо за это. Я изменил часть нашего источника, чтобы использовать фильтры, но все же они недостаточно быстры. Странно, что у нас был кластер с таким же количеством документов (минус вложенные), но гораздо меньше полей и запросов было намного быстрее (мс). – lukewm
Это было на половину аппаратного обеспечения, и индекс все еще был слишком большим, чтобы вместить в ОЗУ.В настоящее время я переиндексирую данные с индексом: no store: false для всей загрузки полей. Любая идея, если это может помочь? – lukewm
Число полей на самом деле не проблема, необходимо ли, чтобы необходимые страницы указателей, необходимые для ответа на большинство ваших запросов, находились в кеше страницы. Хотя неплохо принести размер индекса вниз, отсечение данных, которые на самом деле не использовались, в любом случае не улучшит ситуацию. –