Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17]

Язык запросов 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 полей
  • Объединение запросов
  • Запросы, которые могут иметь высокую стоимость на документ:

    • script_score запросы
    • percolate запросы

Выполнение таких запросов можно предотвратить, установив значение параметра 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

Spec-Zone.ru

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