Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Как сделать

Общие рекомендации

Не возвращайте большие наборы результатов

Elasticsearch разработан как поисковая система, что делает его очень эффективным в получении верхних документов, соответствующих запросу. Однако, он не так хорош для задач, относящихся к области баз данных, таких как извлечение всех документов, соответствующих определенному запросу. Если вам нужно это сделать, используйте API прокрутки.

Избегайте больших документов

Учитывая, что значение по умолчанию http.max_content_length установлено в 100 МБ, Elasticsearch откажется от индексирования любого документа, превышающего этот размер. Вы можете увеличить это значение, но Lucene по-прежнему имеет ограничение около 2 ГБ.

Даже без учета жёстких ограничений, большие документы обычно непрактичны. Крупные документы оказывают большее давление на сеть, использование памяти и диск, даже для поисковых запросов, которые не запрашивают _source, так как Elasticsearch должен извлечь _id документа во всех случаях, а стоимость получения этого поля больше для больших документов из-за того, как работает кэш файловой системы. Индексирование такого документа может использовать объем памяти, кратный первоначальному размеру документа. Поисковый поиск по близости (например, фразовые запросы) и выделение также становятся более дорогими, так как их стоимость напрямую зависит от размера исходного документа.

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

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/general-recommendations.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API