Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17]

Язык запросов DSL

Elasticsearch предоставляет полностью язык запросов DSL (Domain Specific Language) на основе JSON для определения запросов. Представьте язык запросов DSL как AST (Abstract Syntax Tree) запросов, состоящий из двух типов узлов:

Листовые узлы запросов
Листовые узлы запросов ищут конкретное значение в конкретном поле, например, запросы match, term или range. Эти запросы могут использоваться сами по себе.
Составные узлы запросов
Составные узлы запросов оборачивают другие листовые или составные запросы и используются для логического объединения нескольких запросов (например, bool или dis_max запросов) или для изменения их поведения (например, constant_score запрос).

Узлы запросов ведут себя по-разному в зависимости от того, используются ли они в контексте запроса или контексте фильтра.

Разрешить дорогостоящие запросы

Некоторые типы запросов обычно выполняются медленно из-за способа их реализации, что может повлиять на стабильность кластера. Эти запросы можно разделить на следующие категории:

  • Запросы, которые требуют линейного сканирования для определения совпадений:

    • script запросы
  • Запросы с высокой первоначальной стоимостью:

    • fuzzy запросы (кроме полей wildcard)
    • regexp запросы (кроме полей wildcard)
    • prefix запросы (кроме полей wildcard или тех, у которых отсутствуют index_prefixes)
    • wildcard запросы (кроме полей wildcard)
    • range запросы по полям типа text и keyword
  • Объединение запросов
  • Запросы по устаревшим гео-фигурам ###NON_TRANSLATABLE_24###
  • Запросы, которые могут иметь высокую стоимость на документ:

    • 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/7.17/query-dsl.html

Spec-Zone.ru

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