すべてのプロダクト
Search
ドキュメントセンター

Elasticsearch:AliNLP トーカーナイザープラグイン (analysis-aliws) の使用

最終更新日:Sep 24, 2026

AliNLP トーカーナイザープラグイン (analysis-aliws) は、Alibaba Cloud Elasticsearch (ES) の組み込みシステムプラグインです。このプラグインをインストールすると、Alibaba Cloud ES はドキュメント分析と検索のために対応するアナライザーとトーカーナイザーを統合します。また、辞書設定機能を使用して辞書をホットアップデートすることもできます。

プラグインの概要

analysis-aliws プラグインをインストールすると、ES にはデフォルトで次のアナライザーとトーカーナイザーが含まれます。これらを使用してドキュメントを検索したり、辞書設定機能を使用してトーカーナイザーの辞書を更新したりできます。

  • アナライザー: aliws アナライザーは、機能語、機能語句、記号を保持します。また、すべての英大文字を自動的に小文字に変換します。

  • トーカーナイザー: aliws_tokenizer

  • 詳細については、「aliws アナライザーを使用したドキュメントの検索」および「辞書の設定」をご参照ください。

  • analysis-aliws プラグインが期待どおりの結果を返さない場合は、「アナライザーのテスト」と「トーカーナイザーのテスト」を使用して問題をトラブルシューティングできます。

  • カスタムトーカーナイザーを構築するには、「カスタムトーカーナイザーの構築」をご参照ください。

前提条件

analysis-aliws プラグインがインストール済みであること。このプラグインはデフォルトではインストールされません。インストール手順については、「組み込みプラグインのインストールとアンインストール」をご参照ください。

プラグインをインストールまたはアンインストールすると、クラスターのローリングリスタートがトリガーされます。ノードが一度に 1 つずつ再起動されるため、クラスターのステータスは緑から黄色に変わります。クラスターは引き続き利用可能ですが、正常なノードへの負荷が増加し、パフォーマンスに影響が出る可能性があります。この操作はオフピーク時に実行してください。

制限事項

  • Elasticsearch クラスター内のデータノードのメモリサイズは 8 GB 以上である必要があります。データノードのメモリサイズがこの要件を満たさない場合は、クラスターをアップグレードしてください。詳細については、「クラスター設定のアップグレード」をご参照ください。

  • Elasticsearch V5.X クラスター、Elasticsearch V8.X クラスター、および Elasticsearch Kernel-enhanced Edition クラスターは、analysis-aliws プラグインをサポートしていません。お使いのクラスターがこのプラグインをサポートしているかどうかは、Elasticsearch コンソールで確認できます。

aliws アナライザーを使用したドキュメントの検索

  1. 対象の Alibaba Cloud Elasticsearch インスタンスの Kibana コンソールにログインし、画面の指示に従って Kibana のホームページを開きます。

    詳細については、「Kibana コンソールへのログイン」をご参照ください。
    説明

    このトピックでは、Alibaba Cloud Elasticsearch 6.7.0 を例として使用します。他のバージョンでは操作が若干異なる場合があります。実際のコンソール画面を基準にしてください。

  2. 左側メニューで、[開発ツール] をクリックします。

  3. [Console] で、次のいずれかのコマンドを実行してインデックスを作成します。

    • 7.0 より前のバージョン

    PUT /index
    {
       "mappings": {
            "fulltext": {
                "properties": {
                    "content": {
                        "type": "text",
                        "analyzer": "aliws"
                    }
                }
            }
        }
    }
    • バージョン 7.0 以降

    PUT /index
    {
      "mappings": {
        "properties": {
            "content": {
                "type": "text",
                "analyzer": "aliws"
              }
          }
      }
    }

    上記の例では、index という名前のインデックスを作成し、タイプは fulltext (バージョン 7.x では _doc) となります。このインデックスには、text 型の content プロパティが含まれ、aliws アナライザーが使用されます。

    コマンドが正常に実行されると、次の結果が返されます。

    {
      "acknowledged": true,
      "shards_acknowledged": true,
      "index": "index"
    }
  4. 次のコマンドを実行してドキュメントを追加します。

    重要

    次のコマンドは、Elasticsearch 7.0 より前のバージョンにのみ適用されます。バージョン 7.0 以降では、fulltext を _doc に変更してください。

    POST /index/fulltext/1
    {
      "content": "I like go to school."
    }

    上記のコマンドは、ID 1 のドキュメントを追加し、content フィールドを I like go to school. に設定します。

    コマンドが正常に実行されると、次の結果が返されます。

    {
      "_index": "index",
      "_type": "fulltext",
      "_id": "1",
      "_version": 1,
      "result": "created",
      "_shards": {
        "total": 2,
        "successful": 2,
        "failed": 0
      },
      "_seq_no": 0,
      "_primary_term": 1
    }
  5. 次のコマンドを実行してドキュメントを検索します。

重要

次のコマンドは、Elasticsearch 7.0 より前のバージョンにのみ適用されます。バージョン 7.0 以降では、fulltext を _doc に変更してください。

GET /index/fulltext/_search
{
  "query": {
    "match": {
      "content": "school"
    }
  }
}

上記のコマンドは、aliws アナライザーを使用して、fulltext タイプのすべてのドキュメントの中から、content フィールドに school が含まれるドキュメントを検索します。

コマンドが正常に実行されると、次の結果が返されます。

{
  "took": 5,
  "timed_out": false,
  "_shards": {
    "total": 5,
    "successful": 5,
    "skipped": 0,
    "failed": 0
  },
  "hits": {
    "total": 1,
    "max_score": 0.2876821,
    "hits": [
      {
        "_index": "index",
        "_type": "fulltext",
        "_id": "1",
        "_score": 0.2876821,
        "_source": {
          "content": "I like go to school."
        }
      }
    ]
  }
}
説明

analysis-aliws プラグインからの結果が期待どおりでない場合は、以下の「アナライザーのテスト」と「トーカーナイザーのテスト」を使用して問題をトラブルシューティングしてください。

辞書の設定

analysis-aliws プラグインは辞書設定をサポートしています。aliws_ext_dict.txt という名前のカスタム辞書ファイルをアップロードできます。ファイルをアップロードすると、クラスター内のすべてのノードが自動的にファイルをロードし、クラスターを再起動することなく辞書をホットアップデートします。

  • analysis-aliws プラグインをインストールした後、辞書ファイルは提供されません。カスタム辞書ファイルを手動でアップロードする必要があります。

  • 辞書ファイルをアップロードする前に、ファイルが次の要件を満たしていることを確認してください。

    • ファイル名: aliws_ext_dict.txt である必要があります。

    • ファイル形式: UTF-8 エンコーディングを使用する必要があります。

    • 内容: 各行には、先頭または末尾に空白文字を含まない 1 つのタームを記述する必要があります。UNIX または Linux の改行コード (\n) を使用してください。Windows でファイルを作成した場合は、アップロードする前に Linux マシンで dos2unix ツールを使用して辞書ファイルを変換してください。

  1. Alibaba Cloud Elasticsearch コンソールにログインします。

  2. 左側メニューで、Elasticsearch クラスター をクリックします。

  3. 対象のインスタンスを開きます。

     a. メニューバーで、リソースグループとリージョンを選択します。
    
     b. [Elasticsearch クラスター] で対象インスタンスの ID をクリックします。
  4. 左側メニューで、設定と管理 > プラグイン設定 を選択します。

  5. ビルトインプラグインリスト で、analysis-aliws プラグインを見つけます。その Actions 列で、辞書設定 をクリックします。

  6. 辞書設定 ページの下部で、設定 をクリックします。

  7. 辞書ファイルをアップロードする方法を選択し、ファイルをアップロードします。

    • TXT ファイル: TXT ファイルのアップロード をクリックし、ローカルの辞書ファイルを選択してアップロードします。

    • OSS ファイルの追加: Bucket 名とファイル名を入力し、追加 をクリックします。

      Bucket と Alibaba Cloud Elasticsearch インスタンスが同じリージョンにあることを確認してください。ソース OSS ファイルの内容が変更された場合、変更を有効にするには辞書ファイルを再度アップロードする必要があります。自動同期はサポートされていません。
    説明

    analysis-aliws プラグインは 1 つの辞書ファイルのみをサポートします。辞書ファイルを更新するには、aliws_ext_dict.txt ファイルの X アイコンをクリックしてアップロード済みの辞書ファイルを削除し、新しいファイルをアップロードします。

  8. Save をクリックします。

    保存してもクラスターは再起動しません。代わりに、アップロードされた辞書ファイルを適用するためのクラスター更新がトリガーされます。このプロセスには約 10 分かかります。
説明

アップロードされた辞書ファイルをダウンロードするには、設定前に対応する download icon をクリックします。

アナライザーのテスト

次のコマンドを実行して、aliws アナライザーをテストします。

GET _analyze
{
  "text": "I like go to school.",
  "analyzer": "aliws"
}

コマンドが正常に実行されると、次の結果が返されます。

{
  "tokens" : [
    {
      "token" : "i",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    }
  ]
}

トーカーナイザーのテスト

次のコマンドを実行して、aliws_tokenizer トーカーナイザーをテストします。

GET _analyze
{
  "text": "I like go to school.",
  "tokenizer": "aliws_tokenizer"
}

コマンドが正常に実行されると、次の結果が返されます。

{
  "tokens" : [
    {
      "token" : "I",
      "start_offset" : 0,
      "end_offset" : 1,
      "type" : "word",
      "position" : 0
    },
    {
      "token" : " ",
      "start_offset" : 1,
      "end_offset" : 2,
      "type" : "word",
      "position" : 1
    },
    {
      "token" : "like",
      "start_offset" : 2,
      "end_offset" : 6,
      "type" : "word",
      "position" : 2
    },
    {
      "token" : " ",
      "start_offset" : 6,
      "end_offset" : 7,
      "type" : "word",
      "position" : 3
    },
    {
      "token" : "go",
      "start_offset" : 7,
      "end_offset" : 9,
      "type" : "word",
      "position" : 4
    },
    {
      "token" : " ",
      "start_offset" : 9,
      "end_offset" : 10,
      "type" : "word",
      "position" : 5
    },
    {
      "token" : "to",
      "start_offset" : 10,
      "end_offset" : 12,
      "type" : "word",
      "position" : 6
    },
    {
      "token" : " ",
      "start_offset" : 12,
      "end_offset" : 13,
      "type" : "word",
      "position" : 7
    },
    {
      "token" : "school",
      "start_offset" : 13,
      "end_offset" : 19,
      "type" : "word",
      "position" : 8
    },
    {
      "token" : ".",
      "start_offset" : 19,
      "end_offset" : 20,
      "type" : "word",
      "position" : 9
    }
  ]
}

カスタムトーカーナイザーの構築

  • analysis-aliws プラグインはテキストをトークン化した後、ステマー、lowercase、porter_stem、stop などのフィルターを適用します。これらのフィルターをカスタムトーカーナイザーで使用するには、analysis-aliws プラグインのトーカーナイザー aliws_tokenizer をカスタムトーカーナイザーに追加し、ビジネス要件に基づいてフィルター設定を追加します。方法は次の例のとおりです。ビジネスで必要なストップワードを stopwords に追加してください。

PUT my-index-000001
{
  "settings": {
    "analysis": {
     "filter": {
      "my_stop": {
       "type": "stop",
       "stopwords": [
        " ",
        ",",
        ".",
        " ",
        "a",
        "of"
       ]
      }
     },
     "analyzer": {
      "my_custom_analyzer": {
       "type": "custom",
       "tokenizer": "aliws_tokenizer",
       "filter": [
        "lowercase",
        "porter_stem",
        "my_stop"
       ]
      }
     }
    }
    }
}
説明

フィルターが不要な場合は、フィルター設定を削除できます。

  • aliws_tokenizer は、シノニムを使用したカスタムトーカーナイザーの構築をサポートしています。その設定は IK トーカーナイザーの設定と同じです。詳細については、「シノニムの使用」をご参照ください。

FAQ

関連ドキュメント

  • ES でサポートされているプラグインを表示するには、「プラグインの概要」をご参照ください。

  • API を呼び出して組み込みプラグインをインストールするには、「InstallSystemPlugin」をご参照ください。

  • API を呼び出して analysis-aliws プラグインの辞書ファイルを更新するには、「UpdateAliwsDict」をご参照ください。

  • API を呼び出して指定された ES インスタンスのプラグインのリストを取得するには、「ListPlugins」をご参照ください。