Standard analyzer

standard アナライザーは、指定されていない場合に使用されるデフォルトのアナライザーです。これは、文法に基づくトークン化を提供し(Unicode Standard Annex #29に指定されているUnicodeテキストセグメンテーションアルゴリズムに基づく)、ほとんどの言語でうまく機能します。

Example output

Python

  1. resp = client.indices.analyze(
  2. analyzer="standard",
  3. text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
  4. )
  5. print(resp)

Ruby

  1. response = client.indices.analyze(
  2. body: {
  3. analyzer: 'standard',
  4. text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  5. }
  6. )
  7. puts response

Js

  1. const response = await client.indices.analyze({
  2. analyzer: "standard",
  3. text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
  4. });
  5. console.log(response);

Console

  1. POST _analyze
  2. {
  3. "analyzer": "standard",
  4. "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  5. }

上記の文は次の用語を生成します:

Text

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

Configuration

standard アナライザーは、次のパラメーターを受け入れます:

max_token_length 最大トークン長。 この長さを超えるトークンが見られた場合、max_token_length間隔で分割されます。 デフォルトは255です。
stopwords _english_のような事前定義されたストップワードリストまたはストップワードのリストを含む配列。 デフォルトは_none_です。
stopwords_path ストップワードを含むファイルへのパス。

ストップワードの構成に関する詳細は、Stop Token Filterを参照してください。

Example configuration

この例では、standard アナライザーをmax_token_lengthを5に設定し(デモ目的のため)、事前定義された英語のストップワードリストを使用します:

Python

  1. resp = client.indices.create(
  2. index="my-index-000001",
  3. settings={
  4. "analysis": {
  5. "analyzer": {
  6. "my_english_analyzer": {
  7. "type": "standard",
  8. "max_token_length": 5,
  9. "stopwords": "_english_"
  10. }
  11. }
  12. }
  13. },
  14. )
  15. print(resp)
  16. resp1 = client.indices.analyze(
  17. index="my-index-000001",
  18. analyzer="my_english_analyzer",
  19. text="The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
  20. )
  21. print(resp1)

Ruby

  1. response = client.indices.create(
  2. index: 'my-index-000001',
  3. body: {
  4. settings: {
  5. analysis: {
  6. analyzer: {
  7. my_english_analyzer: {
  8. type: 'standard',
  9. max_token_length: 5,
  10. stopwords: '_english_'
  11. }
  12. }
  13. }
  14. }
  15. }
  16. )
  17. puts response
  18. response = client.indices.analyze(
  19. index: 'my-index-000001',
  20. body: {
  21. analyzer: 'my_english_analyzer',
  22. text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  23. }
  24. )
  25. puts response

Js

  1. const response = await client.indices.create({
  2. index: "my-index-000001",
  3. settings: {
  4. analysis: {
  5. analyzer: {
  6. my_english_analyzer: {
  7. type: "standard",
  8. max_token_length: 5,
  9. stopwords: "_english_",
  10. },
  11. },
  12. },
  13. },
  14. });
  15. console.log(response);
  16. const response1 = await client.indices.analyze({
  17. index: "my-index-000001",
  18. analyzer: "my_english_analyzer",
  19. text: "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone.",
  20. });
  21. console.log(response1);

Console

  1. PUT my-index-000001
  2. {
  3. "settings": {
  4. "analysis": {
  5. "analyzer": {
  6. "my_english_analyzer": {
  7. "type": "standard",
  8. "max_token_length": 5,
  9. "stopwords": "_english_"
  10. }
  11. }
  12. }
  13. }
  14. }
  15. POST my-index-000001/_analyze
  16. {
  17. "analyzer": "my_english_analyzer",
  18. "text": "The 2 QUICK Brown-Foxes jumped over the lazy dog's bone."
  19. }

上記の例は次の用語を生成します:

Text

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

Definition

standard アナライザーは次のもので構成されています:

standard アナライザーの構成パラメーターを超えてカスタマイズする必要がある場合は、custom アナライザーとして再作成し、通常はトークンフィルターを追加して修正する必要があります。 これにより、組み込みのstandard アナライザーが再作成され、出発点として使用できます:

Python

  1. resp = client.indices.create(
  2. index="standard_example",
  3. settings={
  4. "analysis": {
  5. "analyzer": {
  6. "rebuilt_standard": {
  7. "tokenizer": "standard",
  8. "filter": [
  9. "lowercase"
  10. ]
  11. }
  12. }
  13. }
  14. },
  15. )
  16. print(resp)

Ruby

  1. response = client.indices.create(
  2. index: 'standard_example',
  3. body: {
  4. settings: {
  5. analysis: {
  6. analyzer: {
  7. rebuilt_standard: {
  8. tokenizer: 'standard',
  9. filter: [
  10. 'lowercase'
  11. ]
  12. }
  13. }
  14. }
  15. }
  16. }
  17. )
  18. puts response

Js

  1. const response = await client.indices.create({
  2. index: "standard_example",
  3. settings: {
  4. analysis: {
  5. analyzer: {
  6. rebuilt_standard: {
  7. tokenizer: "standard",
  8. filter: ["lowercase"],
  9. },
  10. },
  11. },
  12. },
  13. });
  14. console.log(response);

Console

  1. PUT /standard_example
  2. {
  3. "settings": {
  4. "analysis": {
  5. "analyzer": {
  6. "rebuilt_standard": {
  7. "tokenizer": "standard",
  8. "filter": [
  9. "lowercase"
  10. ]
  11. }
  12. }
  13. }
  14. }
  15. }
lowercaseの後に任意のトークンフィルターを追加します。