Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Анализ текста ›Справочник по фильтрам токенов

Фильтр токенов Fingerprint

Сортирует и удаляет дубликаты токенов из потока токенов, затем объединяет поток в один выходной токен.

Например, этот фильтр изменяет поток токенов [ the, fox, was, very, very, quick ] следующим образом:

  1. Сортирует токены в алфавитном порядке [ fox, quick, the, very, very, was ]
  2. Удаляет дубликат токена very.
  3. Объединяет поток токенов в один выходной токен: [fox quick the very was ]

Выходные токены, созданные этим фильтром, полезны для отпечатков пальцев и кластеризации текста, как описано в проекте OpenRefine.

Этот фильтр использует FingerprintFilter из Lucene.

Пример

Следующий запрос API analyze использует фильтр fingerprint для создания одного выходного токена для текста zebra jumps over resting resting dog:

GET _analyze
{
  "tokenizer" : "whitespace",
  "filter" : ["fingerprint"],
  "text" : "zebra jumps over resting resting dog"
}

Фильтр создаёт следующий токен:

[ dog jumps over resting zebra ]

Добавление в анализатор

Следующий запрос API создания индекса использует фильтр fingerprint для настройки нового пользовательского анализатора.

PUT fingerprint_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "whitespace_fingerprint": {
          "tokenizer": "whitespace",
          "filter": [ "fingerprint" ]
        }
      }
    }
  }
}

Настраиваемые параметры

max_output_size
(Необязательно, целое число) Максимальная длина выходного токена, включая пробелы. По умолчанию 255. Объединённые токены, превышающие эту длину, не будут выведены.
separator
(Необязательно, строка) Символ, используемый для объединения потока входных токенов. По умолчанию - пробел.

Настройка

Чтобы настроить фильтр fingerprint, дублируйте его, чтобы создать основу для нового пользовательского фильтра токенов. Вы можете изменить фильтр, используя его настраиваемые параметры.

Например, следующий запрос создаёт пользовательский фильтр fingerprint, который использует + для объединения потоков токенов. Фильтр также ограничивает выходные токены 100 символами или меньше.

PUT custom_fingerprint_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "whitespace_": {
          "tokenizer": "whitespace",
          "filter": [ "fingerprint_plus_concat" ]
        }
      },
      "filter": {
        "fingerprint_plus_concat": {
          "type": "fingerprint",
          "max_output_size": 100,
          "separator": "+"
        }
      }
    }
  }
}

© 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/analysis-fingerprint-tokenfilter.html

Spec-Zone.ru

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