Язык запросов DSL
Elasticsearch предоставляет полный язык запросов DSL (специфичный для предметной области) на основе JSON для определения запросов. Представьте язык запросов DSL как АСТ (абстрактное синтаксическое дерево) запросов, состоящий из двух типов узлов:
- Листовые узлы запросов
- Листовые узлы запросов ищут определённое значение в определённом поле, например, запросы
match,termилиrange. Эти запросы могут быть использованы самостоятельно. - Составные узлы запросов
- Составные узлы запросов оборачивают другие листовые или составные запросы и используются для логического объединения нескольких запросов (например,
boolилиdis_maxзапросы), или для изменения их поведения (например,constant_scoreзапрос).
Поведение узлов запросов отличается в зависимости от того, используются ли они в контексте запроса или контексте фильтра.
- Разрешить дорогостоящие запросы
-
Некоторые типы запросов, как правило, выполняются медленно из-за способа их реализации, что может повлиять на стабильность кластера. Эти запросы можно разделить на следующие категории:
-
Запросы, которым требуется линейный поиск для определения совпадений:
-
scriptзапросы - запросы для числовых, датовых, булевых, IP, гео-точечных или ключевых полей, которые не индексированы, но для которых включены doc values
-
-
Запросы с высокой начальной стоимостью:
-
fuzzyзапросы (кромеwildcardполей) -
regexpзапросы (кромеwildcardполей) -
prefixзапросы (кромеwildcardполей или полей безindex_prefixes) -
wildcardзапросы (кромеwildcardполей) -
rangeзапросы дляtextиkeywordполей
-
- Объединение запросов
-
Запросы, которые могут иметь высокую стоимость на документ:
-
Выполнение таких запросов можно предотвратить, установив значение параметра search.allow_expensive_queries в false (по умолчанию true).
© 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/8.17/query-dsl.html