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

Стандартный анализатор

Анализатор standard является анализатором по умолчанию, используемым при отсутствии явного указания. Он предоставляет лексический анализ, основанный на грамматике (на основе алгоритма сегментации текста Юникода, как указано в Приложении к стандарту Юникода #29), и хорошо работает для большинства языков.

Пример вывода

resp = client.indices.analyze(
    analyzer="standard",
    text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
)
print(resp)
response = client.indices.analyze(
  body: {
    analyzer: 'standard',
    text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  }
)
puts response
const response = await client.indices.analyze({
  analyzer: "standard",
  text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
});
console.log(response);
POST _analyze
{
  "analyzer": "standard",
  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

Предложенное предложение сгенерирует следующие термины:

[ the, 2, quick, brown, foxes, jumped, over, the, lazy, dog's, bone ]

Настройка

Анализатор standard принимает следующие параметры:

max_token_length

Максимальная длина токена. Если встретится токен, превышающий эту длину, он будет разделен на интервалы с max_token_length интервалами. Значение по умолчанию — 255.

stopwords

Список стоп-слов, например, _english_, или массив, содержащий список стоп-слов. Значение по умолчанию — _none_.

stopwords_path

Путь к файлу, содержащему стоп-слова.

См. Фильтр токенов стоп-слов для получения дополнительной информации о настройке стоп-слов.

Пример конфигурации

В этом примере мы настраиваем анализатор standard с максимальной длиной токена max_token_length в 5 (для демонстрационных целей) и используем предопределённый список английских стоп-слов:

resp = client.indices.create(
    index="my-index-000001",
    settings={
        "analysis": {
            "analyzer": {
                "my_english_analyzer": {
                    "type": "standard",
                    "max_token_length": 5,
                    "stopwords": "_english_"
                }
            }
        }
    },
)
print(resp)

resp1 = client.indices.analyze(
    index="my-index-000001",
    analyzer="my_english_analyzer",
    text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
)
print(resp1)
response = client.indices.create(
  index: 'my-index-000001',
  body: {
    settings: {
      analysis: {
        analyzer: {
          my_english_analyzer: {
            type: 'standard',
            max_token_length: 5,
            stopwords: '_english_'
          }
        }
      }
    }
  }
)
puts response

response = client.indices.analyze(
  index: 'my-index-000001',
  body: {
    analyzer: 'my_english_analyzer',
    text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  }
)
puts response
const response = await client.indices.create({
  index: "my-index-000001",
  settings: {
    analysis: {
      analyzer: {
        my_english_analyzer: {
          type: "standard",
          max_token_length: 5,
          stopwords: "_english_",
        },
      },
    },
  },
});
console.log(response);

const response1 = await client.indices.analyze({
  index: "my-index-000001",
  analyzer: "my_english_analyzer",
  text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
});
console.log(response1);
PUT my-index-000001
{
  "settings": {
    "analysis": {
      "analyzer": {
        "my_english_analyzer": {
          "type": "standard",
          "max_token_length": 5,
          "stopwords": "_english_"
        }
      }
    }
  }
}

POST my-index-000001/_analyze
{
  "analyzer": "my_english_analyzer",
  "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
}

Вышеприведённый пример генерирует следующие термины:

[ 2, quick, brown, foxes, jumpe, d, over, lazy, dog's, bone ]

Определение

Анализатор standard состоит из:

Токенизатор
  • Стандартный токенизатор
Фильтры токенов
  • Фильтр токенов с нижним регистром
  • Фильтр токенов стоп-слов (отключен по умолчанию)

Если вам нужно настроить анализатор standard за пределами параметров конфигурации, вам необходимо воссоздать его как анализатор custom и изменить его, обычно добавив фильтры токенов. Это позволит воссоздать встроенный анализатор standard, и вы можете использовать его в качестве отправной точки:

resp = client.indices.create(
    index="standard_example",
    settings={
        "analysis": {
            "analyzer": {
                "rebuilt_standard": {
                    "tokenizer": "standard",
                    "filter": [
                        "lowercase"
                    ]
                }
            }
        }
    },
)
print(resp)
response = client.indices.create(
  index: 'standard_example',
  body: {
    settings: {
      analysis: {
        analyzer: {
          rebuilt_standard: {
            tokenizer: 'standard',
            filter: [
              'lowercase'
            ]
          }
        }
      }
    }
  }
)
puts response
const response = await client.indices.create({
  index: "standard_example",
  settings: {
    analysis: {
      analyzer: {
        rebuilt_standard: {
          tokenizer: "standard",
          filter: ["lowercase"],
        },
      },
    },
  },
});
console.log(response);
PUT /standard_example
{
  "settings": {
    "analysis": {
      "analyzer": {
        "rebuilt_standard": {
          "tokenizer": "standard",
          "filter": [
            "lowercase"       
          ]
        }
      }
    }
  }
}

Вы добавите любые фильтры токенов после lowercase.

© 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-standard-analyzer.html

Spec-Zone.ru

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