Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Руководство [7.17] ›Справочник по обработке ›Справочник по обработчикам ingest

Обработчик Circle

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

Таблица 5. Параметры обработчика Circle

Имя Обязательно Значение по умолчанию Описание

field

да

-

Строковое поле, из которого нужно удалить пробелы

target_field

нет

field

Поле, в которое будет помещена форма многоугольника, по умолчанию field обновляется на месте

ignore_missing

нет

false

Если true и field не существуют, обработчик спокойно завершается без изменения документа

error_distance

да

-

Разница между результатом вписанной дистанции от центра до стороны и радиусом круга (измеряется в метрах для geo_shape, без единиц измерения для shape)

shape_type

да

-

Тип используемого сопоставления поля при обработке круга: geo_shape или shape

description

нет

-

Описание обработчика. Полезно для описания цели обработчика или его конфигурации.

if

нет

-

Условное выполнение обработчика. См. Условное выполнение обработчика.

ignore_failure

нет

false

Игнорировать ошибки для обработчика. См. Обработка сбоев в конвейере.

on_failure

нет

-

Обработка ошибок для обработчика. См. Обработка сбоев в конвейере.

tag

нет

-

Идентификатор обработчика. Полезно для отладки и метрик.

error distance

PUT circles
{
  "mappings": {
    "properties": {
      "circle": {
        "type": "geo_shape"
      }
    }
  }
}

PUT _ingest/pipeline/polygonize_circles
{
  "description": "translate circle to polygon",
  "processors": [
    {
      "circle": {
        "field": "circle",
        "error_distance": 28.0,
        "shape_type": "geo_shape"
      }
    }
  ]
}

Используя вышеуказанный конвейер, мы можем попытаться индексировать документ в индекс circles. Круг может быть представлен как круг WKT или круг GeoJSON. Результирующий многоугольник будет представлен и индексирован в том же формате, что и входной круг. WKT будет переведен в многоугольник WKT, а круги GeoJSON будут переведены в многоугольники GeoJSON.

Круги, содержащие полюс, не поддерживаются.

Пример: Круг, определенный в формате Well Known Text

В этом примере индексируется круг, определенный в формате WKT.

PUT circles/_doc/1?pipeline=polygonize_circles
{
  "circle": "CIRCLE (30 10 40)"
}

GET circles/_doc/1

Ответ на запрос индексации:

{
  "found": true,
  "_index": "circles",
  "_type": "_doc",
  "_id": "1",
  "_version": 1,
  "_seq_no": 22,
  "_primary_term": 1,
  "_source": {
    "circle": "POLYGON ((30.000365257263184 10.0, 30.000111397193788 10.00034284530941, 29.999706043744222 10.000213571721195, 29.999706043744222 9.999786428278805, 30.000111397193788 9.99965715469059, 30.000365257263184 10.0))"
  }
}

Пример: Круг, определенный в формате GeoJSON

В этом примере индексируется круг, определенный в формате GeoJSON.

PUT circles/_doc/2?pipeline=polygonize_circles
{
  "circle": {
    "type": "circle",
    "radius": "40m",
    "coordinates": [30, 10]
  }
}

GET circles/_doc/2

Ответ на запрос индексации:

{
  "found": true,
  "_index": "circles",
  "_type": "_doc",
  "_id": "2",
  "_version": 1,
  "_seq_no": 22,
  "_primary_term": 1,
  "_source": {
    "circle": {
      "coordinates": [
        [
          [30.000365257263184, 10.0],
          [30.000111397193788, 10.00034284530941],
          [29.999706043744222, 10.000213571721195],
          [29.999706043744222, 9.999786428278805],
          [30.000111397193788, 9.99965715469059],
          [30.000365257263184, 10.0]
        ]
      ],
      "type": "Polygon"
    }
  }
}

Примечания по точности

Точность многоугольника, представляющего круг, определяется как error_distance. Чем меньше эта разница, тем ближе многоугольник к идеальному кругу.

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

Минимальное количество сторон — 4, максимальное — 1000.

Таблица 6. Точность обработчика Circle

error_distance радиус в метрах количество сторон многоугольника

1.00

1.0

4

1.00

10.0

14

1.00

100.0

45

1.00

1000.0

141

1.00

10000.0

445

1.00

100000.0

1000

© 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/ingest-circle-processor.html

Spec-Zone.ru

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