Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Анализ текста ›Справочник по токенайзерам

Токенайзер Simple pattern

Токенайзер simple_pattern использует регулярное выражение для выделения совпадающего текста в качестве терминов. Поддержка функций регулярных выражений ограничена по сравнению с токенайзером pattern, но токенизация обычно происходит быстрее.

В отличие от токенайзера pattern, этот токенайзер не поддерживает разделение входных данных на основе совпадения шаблона. Для разделения на совпадения шаблонов с использованием того же ограниченного набора регулярных выражений см. токенайзер simple_pattern_split.

Этот токенайзер использует регулярные выражения Lucene. Объяснение поддерживаемых функций и синтаксиса см. в разделе Синтаксис регулярных выражений.

По умолчанию шаблон пустая строка, что не приводит к генерации терминов. Этот токенайзер всегда должен быть настроен с непустым шаблоном.

Настройка

Токенайзер simple_pattern принимает следующие параметры:

pattern

регулярное выражение Lucene, по умолчанию пустая строка.

Пример настройки

В этом примере токенайзер simple_pattern настроен для создания терминов, которые представляют собой трехзначные числа

resp = client.indices.create(
    index="my-index-000001",
    settings={
        "analysis": {
            "analyzer": {
                "my_analyzer": {
                    "tokenizer": "my_tokenizer"
                }
            },
            "tokenizer": {
                "my_tokenizer": {
                    "type": "simple_pattern",
                    "pattern": "[0123456789]{3}"
                }
            }
        }
    },
)
print(resp)

resp1 = client.indices.analyze(
    index="my-index-000001",
    analyzer="my_analyzer",
    text="fd-786-335-514-x",
)
print(resp1)
response = client.indices.create(
  index: 'my-index-000001',
  body: {
    settings: {
      analysis: {
        analyzer: {
          my_analyzer: {
            tokenizer: 'my_tokenizer'
          }
        },
        tokenizer: {
          my_tokenizer: {
            type: 'simple_pattern',
            pattern: '[0123456789]{3}'
          }
        }
      }
    }
  }
)
puts response

response = client.indices.analyze(
  index: 'my-index-000001',
  body: {
    analyzer: 'my_analyzer',
    text: 'fd-786-335-514-x'
  }
)
puts response
const response = await client.indices.create({
  index: "my-index-000001",
  settings: {
    analysis: {
      analyzer: {
        my_analyzer: {
          tokenizer: "my_tokenizer",
        },
      },
      tokenizer: {
        my_tokenizer: {
          type: "simple_pattern",
          pattern: "[0123456789]{3}",
        },
      },
    },
  },
});
console.log(response);

const response1 = await client.indices.analyze({
  index: "my-index-000001",
  analyzer: "my_analyzer",
  text: "fd-786-335-514-x",
});
console.log(response1);
PUT my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_analyzer": {
          "tokenizer": "my_tokenizer"
        }
      },
      "tokenizer": {
        "my_tokenizer": {
          "type": "simple_pattern",
          "pattern": "[0123456789]{3}"
        }
      }
    }
  }
}

POST my-index-000001/_analyze
{
  "analyzer": "my_analyzer",
  "text": "fd-786-335-514-x"
}

В приведённом примере получаются следующие термины:

[ 786, 335, 514 ]

© 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/8.17/analysis-simplepattern-tokenizer.html

Spec-Zone.ru

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