このドキュメントでは、Alibaba Cloud Elasticsearch の組み込み IK Analyzer プラグインによってサポートされる IK 辞書のアップグレード方法について説明します。

IK Analyzer プラグインを使用すると、次の方法を使用して IK 辞書をアップグレードできます。
重要 IK Analyzer が既に設定されているインデックスの場合、アップグレードされた辞書はこれらのインデックスに追加された新しいデータにのみ適用されます。 アップグレードされた辞書を既存のデータと新しいデータの両方に適用する場合は、これらのインデックスを再作成する必要があります。

標準アップグレード

標準アップグレード方法では、Elasticsearch クラスター内のすべてのノードの辞書をアップグレードします。 標準アップグレード方法を選択した場合、Elasticsearch はクラスター内のすべてのノードにアップロードされた辞書ファイルを送信し、 IKAnalyzer.cfg.xml ファイルを変更し、ノードを再起動してアップロードされた辞書ファイルを読み込みます。

標準アップグレード方法を使用して、IK メイン辞書とストップワードリストをアップグレードできます。 [標準アップグレード] ページで、組み込みのメイン辞書 SYSTEM_MAIN.dic およびストップワードリスト SYSTEM_STOPWORD.dic を確認できます。
  • 組み込みのメイン辞書をアップグレードする場合は、 SYSTEM_MAIN.dic という名前の辞書ファイルをアップロードします。
  • 組み込みのストップワードリストをアップグレードする場合は、 SYSTEM_STOPWORD.dic という名前の辞書ファイルをアップロードします。

標準アップグレードの例

  1. Alibaba Cloud Elasticsearch コンソール にログインし、IK 辞書をアップグレードする Elasticsearch インスタンスの ID をクリックします。
  2. 左側のナビゲーションウィンドウで、 [プラグイン] をクリックします。アップグレードするプラグインを見つけ、[操作] 列の [標準アップグレード] をクリックします。標準アップグレード
  3. [プラグイン設定] ダイアログボックスで、[設定] をクリックします。
  4. [IK ワードセグメンテーション辞書][辞書ファイルのアップロード] をクリックし、カスタムメイン辞書ファイルをアップロードします。
    dic ファイルのアップロード または OSS ファイルの追加 ができます。 クラウドまたはローカルホストに保存されている辞書ファイルの内容が変更された場合、2 つの方法のいずれかを使用して辞書ファイルを手動でアップロードし、辞書をアップグレードする必要があります。
    重要 この操作により、Elasticsearch インスタンスが再起動されます。 操作を実行する前に、ビジネスが悪影響を受けないことを確認してください。
  5. 下にスクロールして、 [この操作は、インスタンスを再起動します。確認してから操作を行ってください。 ] チェックボックスをオンにして操作を確認し、[保存] をクリックします。
  6. インスタンスの再起動後、Kibana コンソールへのログインを行い、以下のリクエストを送信して、辞書が有効になるかどうかを確認します。
    GET _analyze
    {
    "analyzer": "ik_smart",
    "text": ["tokens in your updated dictionary"]
    }
    重要
    • 組み込みのメイン辞書、またはストップワードリストは削除できません。
    • 新しい辞書ファイルをアップロードするか、辞書ファイルを削除するか、辞書コンテンツを更新するかにかかわらず、標準アップグレード方法では、常にクラスターを再起動する必要があります。
    • 標準アップグレード方法を使用できるのは、クラスターが正常ステータスの場合のみです。

ローリングアップブレード

辞書ファイルの内容が変更された場合、ローリングアップグレード方法を使用して辞書をアップグレードできます。 最新の辞書ファイルをアップロードすると、Elasticsearch ノードが自動的にファイルをロードします。

ローリングアップブレードを実行する際、辞書ファイルリストが変更されると、変更は IKAnalyzer.cfg.xml ファイルに更新されます。 その結果、クラスター内のすべてのノードで、辞書設定を再ロードする必要があります。 たとえば、新しい辞書ファイルをアップロードするか、既存の辞書ファイルを削除した後、すべてのノードで辞書設定を再ロードする必要があります。

ローリングアップグレードの手順は、標準アップグレードの手順と同様です。 辞書ファイルを初めてアップロードする場合、 IKAnalyzer.cfg.xml ファイルを変更する必要があります。 辞書をアップグレードした後、新しい辞書を有効にするには、Elasticsearch でインスタンスを再起動する必要があります。

ローリングアップグレードの例

  1. Alibaba Cloud Elasticsearch コンソール にログインし、辞書をアップグレードする Elasticsearch インスタンスの ID をクリックします。
  2. 左側のナビゲーションウィンドウで、[プラグイン] をクリックします。アップグレードするプラグインを見つけ、 [操作] 列で、[ローリングアップグレード]をクリックします。ローリングアップグレード
  3. [プラグイン設定] ダイアログボックスで、[設定] をクリックします。設定
  4. [IK ワードセグメンテーション辞書][辞書ファイルのアップロード] をクリックし、カスタムメイン辞書ファイルをアップロードします。
    dic ファイルのアップロード または OSS ファイルの追加 ができます。 クラウドまたはローカルホストに保存されている辞書ファイルの内容が変更された場合、2 つの方法のいずれかを使用して辞書ファイルを手動でアップロードし、辞書をアップグレードする必要があります。
    重要 この操作により、Elasticsearch インスタンスが再起動されます。 操作を実行する前に、ビジネスが悪影響を受けないことを確認してください。
  5. 下にスクロールして、 [この操作は、インスタンスを再起動します。確認してから操作を行ってください。 ] チェックボックスをオンにして操作を確認し、[保存] をクリックします。 辞書ファイルを初めてアップロードする場合、Elasticsearch はクラスターを再起動します。

    [保存] をクリックすると、クラスターはローリングアップグレードを実行します。 ローリングアップグレードが完了すると、更新された辞書が有効になります。

    更新された辞書にトークンを追加または削除する必要がある場合は、次の手順に従って "a_10words.dic" 辞書ファイルに置き換えます。

  6. [ローリングアップグレード] ダイアログボックスで、既存の辞書ファイルを削除し、新しい辞書ファイルを "a_10words.dic" という名前でアップロードします。

    このタスクは、クラスター上の既存の辞書ファイルの内容を変更します。 したがって、Elasticsearch は、次の図に示すように、アップグレードを有効にするためにクラスターを再起動する必要はありません。

  7. [保存] をクリックします。
    Elasticsearch クラスターのノード上のプラグインは、辞書ファイルを自動的にロードします。 各ノードが辞書ファイルをロードするのにかかる時間は異なります。 新しい辞書が有効になるまでお待ちください。 すべてのノードが辞書ファイルをロードするのに約 2 分かかります。 Kibana コンソールへのログインを行い、次のリクエストを送信して、新しい辞書が有効になっていることを確認します。
    GET _analyze
    {
    "analyzer": "ik_smart",
    "text": ["tokens in your updated dictionary"]
    }
    ローリングアップグレード方法を使用して、組み込みのメイン辞書を変更することはできません。 組み込みのメイン辞書を変更する場合は、標準アップグレード方法を使用してください。

詳細については、『elasticsearch-analysis-ik』をご参照ください。