Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›SQL ›SQL REST API

Фильтрация с помощью Elasticsearch Query DSL

Можно отфильтровать результаты, на которых будет выполняться SQL, с помощью стандартного Elasticsearch Query DSL, указав запрос в параметре фильтра.

POST /_sql?format=txt
{
  "query": "SELECT * FROM library ORDER BY page_count DESC",
  "filter": {
    "range": {
      "page_count": {
        "gte" : 100,
        "lte" : 200
      }
    }
  },
  "fetch_size": 5
}

Что возвращает:

    author     |                name                |  page_count   | release_date
---------------+------------------------------------+---------------+------------------------
Douglas Adams  |The Hitchhiker's Guide to the Galaxy|180            |1979-10-12T00:00:00.000Z

Полезное, но не очевидное использование стандартной фильтрации Query DSL — поиск документов по определенному ключу маршрутизации. Так как Elasticsearch SQL не поддерживает параметр routing, можно указать terms фильтр для поля _routing:

POST /_sql?format=txt
{
  "query": "SELECT * FROM library",
  "filter": {
    "terms": {
      "_routing": ["abc"]
    }
  }
}

© 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/sql-rest-filtering.html

Spec-Zone.ru

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