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

Фильтр токенов Dictionary decompounder

В большинстве случаев мы рекомендуем использовать более быстрый фильтр токенов hyphenation_decompounder вместо этого фильтра. Однако вы можете использовать этот фильтр для проверки качества списка слов перед его внедрением в фильтр hyphenation_decompounder.

Использует указанный список слов и подход грубой силы для поиска подслов в составных словах. Если подслово найдено, оно включается в выходной поток токенов.

Этот фильтр использует DictionaryCompoundWordTokenFilter Lucene, который был разработан для германских языков.

Пример

Следующий запрос API анализа анализа использует фильтр dictionary_decompounder для поиска подслов в Donaudampfschiff. Затем фильтр проверяет эти подслова на соответствие указанному списку слов: Donau, dampf, meer и schiff.

GET _analyze
{
  "tokenizer": "standard",
  "filter": [
    {
      "type": "dictionary_decompounder",
      "word_list": ["Donau", "dampf", "meer", "schiff"]
    }
  ],
  "text": "Donaudampfschiff"
}

Фильтр генерирует следующие токены:

[ Donaudampfschiff, Donau, dampf, schiff ]

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

word_list

(Обязательно*, массив строк) Список подслов для поиска в потоке токенов. Если подслово найдено, оно включается в выходной поток токенов.

Необходимо указать либо этот параметр, либо word_list_path.

word_list_path

(Обязательно*, строка) Путь к файлу, содержащему список подслов для поиска в потоке токенов. Если подслово найдено, оно включается в выходной поток токенов.

Этот путь должен быть абсолютным или относительным к расположению config, а файл должен быть закодирован в UTF-8. Каждый токен в файле должен быть разделен новой строкой.

Необходимо указать либо этот параметр, либо word_list.

max_subword_size
(Необязательно, целое число) Максимальная длина подслова в символах. Подслова с большей длиной исключаются из выходных данных. По умолчанию - 15.
min_subword_size
(Необязательно, целое число) Минимальная длина подслова в символах. Подслова с меньшей длиной исключаются из выходных данных. По умолчанию - 2.
min_word_size
(Необязательно, целое число) Минимальная длина слова в символах. Слова с меньшей длиной исключаются из выходных данных. По умолчанию - 5.
only_longest_match
(Необязательно, Булево) Если true, включать только самое длинное совпадающее подслово. По умолчанию - false.

Настройка и добавление в анализатор

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

Например, следующий запрос API создания индекса создания индекса использует настраиваемый фильтр dictionary_decompounder для настройки нового пользовательского анализатора.

Настраиваемый фильтр dictionary_decompounder находит подслова в файле analysis/example_word_list.txt. Подслова, длина которых превышает 22 символа, исключаются из выходного потока токенов.

PUT dictionary_decompound_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "standard_dictionary_decompound": {
          "tokenizer": "standard",
          "filter": [ "22_char_dictionary_decompound" ]
        }
      },
      "filter": {
        "22_char_dictionary_decompound": {
          "type": "dictionary_decompounder",
          "word_list_path": "analysis/example_word_list.txt",
          "max_subword_size": 22
        }
      }
    }
  }
}

© 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-dict-decomp-tokenfilter.html

Spec-Zone.ru

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