概要
解析結果は検索パフォーマンスに直接影響するため、解析は検索エンジンにおいて重要な要素です。ビジネスシナリオは多様であり、あるフレーズの意味は文脈によって異なる場合があるため、解析に対する要件も異なります。これに対処するため、OpenSearch は、E コマースアナライザーなどの汎用アナライザーとドメイン固有アナライザーの両方を提供しています。
OpenSearch では、組み込みアナライザーと介入エントリを組み合わせてカスタムアナライザーを作成できます。その後、カスタムアナライザーをアプリケーションのインデックスフィールドに適用して、インデックス作成時とクエリ時の両方で解析結果を制御できます。この制御により、高品質な検索結果を実現できます。
介入エントリ
二次解析機能を有効または無効にすることで、介入エントリの動作を制御できます。
二次解析を有効にすると、アナライザーは介入エントリの結果をさらに分割できます。無効にすると、介入結果は最終出力として扱われ、それ以上分割されません。
たとえば、エントリが「Open Search」、アナライザーが「General Chinese」の場合、二次解析を有効にした結果は次のようになります:
分析結果では、"Open Search" はOpenとSearchの 2 つのエントリに分割されます。
二次解析を無効にした場合、結果は次のようになります:
分析結果では、「OpenSearch」はさらにセグメント化されることなく、単一のエントリ OpenSearch として扱われることが示されています。
使用上の注意
-
カスタムアナライザーには、ベースアナライザーのすべてのエントリと、カスタム介入エントリが含まれます。介入エントリは、ベースアナライザーのデフォルトエントリを上書きします。
-
最大 20 個のカスタムアナライザーを作成できます。
-
各カスタムアナライザーには、最大 1,000 個の介入エントリを含めることができます。
-
エントリのクエリは 10 文字 (中国語または英語) を、値は 32 文字を超えることはできません。
-
エントリには、大文字 (A-Z)、全角文字 (\uff01~\uff5e)、または中国語の句読点を含めることはできません。
-
セマンティックセグメンテーション介入エントリの場合、値からスペースを削除した後、クエリと値が同一である必要があります。例:
invalidkey => wrong key validkey => valid key最初のエントリは、クエリ
invalidkeyと値wrong key(スペースを削除するとwrongkeyになります) が同一ではないため、無効です。 -
介入エントリを追加する場合は、スペースを使用して解析結果内の複数の用語を区切ります。カンマは使用しないでください。カンマは区切り文字ではなく、用語の内容の一部として扱われるため、検証に失敗し、エントリを保存できなくなります。例:
applehuawei => apple huawei (正しい、スペースで区切られています) applehuawei => apple,huawei (誤り、カンマはコンテンツ文字として扱われます)2番目のエントリでは、値がカンマで区切られています。カンマはリテラル文字として扱われるため、スペースを削除すると値は
apple,huaweiになり、クエリapplehuaweiと一致しません。したがって、検証は失敗します。 -
エントリのクエリにスペースを含めることはできません。例:
invalid key => an invalid key validkey => a valid key最初のエントリは、クエリ
invalid keyにスペースが含まれているため、無効です。 -
エントリのクエリは、同じ介入辞書内の別のエントリの値の部分文字列であってはなりません。例:
customanalyzer => custom analyzer analyzer token2番目のエントリは、クエリ
analyzerが最初のエントリの値 (custom analyzer) の一部であるため、無効です。3 番目のエントリtokenは有効です。
操作手順
ワークフローの概要
カスタムアナライザーの作成 → オフライン変更の実行 → 再インデックス → 結果の検証
ステップ
1. OpenSearch コンソールの左側のナビゲーションペインで、[検索アルゴリズムセンター] > [検索設定] > [アナライザー管理] に移動し、[作成] をクリックします。
2. アナライザーを作成し、名前を設定して、タイプを選択します。
表示されるダイアログボックスで、[アナライザータイプ] で [組み込みアナライザー] または [カスタムモデルアナライザー] を選択し、[アナライザー] ドロップダウンリストから、[中国語 - 一般分析] などの特定のアナライザーを選択します。
3. 介入エントリを追加し、クエリ (例: 「sticky rice」) と解析結果を入力し、二次解析を選択します。
[エントリ管理] ページで、[追加] をクリックします。[介入エントリの追加] ダイアログボックスで、[クエリ] と [分析結果] を入力し、[二次分析] を有効にして、[保存] をクリックします。注意: 単語をスペースで区切ります。 例: "糯米" ==> "糯 米".
4. 解析をテストして、介入エントリの結果を確認します。
[アナライザー管理] ページのアナライザーリストで、対象のカスタムアナライザーを見つけ、[操作] 列の [分析テスト] をクリックします。
-
4.1. テストテキストに「sticky rice」と入力します。
test_zw アナライザーでテストした結果、「糯米」は 糯 と 米 の 2つのエントリに分割されます。
-
4.2. 複数のカスタムアナライザーの解析結果を比較します。
比較結果によると、 test_zw は「糯米」を 糯 と 米 に分割するのに対し、 kevintest2 は 糯米 を完全なエントリとして保持します。
5. 解析の効果をテストした後、[検索設定] の [基本設定] に戻り、アプリケーションに変更を適用します。
[分析設定] エリアで、[オフライン変更] ボタンをクリックします。
注意:オフライン変更により、現在の設定に基づいて新しいオフラインアプリケーションバージョンが生成されます。稼働中のアプリケーションには影響しません。
6. インデックスフィールドのリストで、対象のインデックスフィールドの解析方法列からカスタムアナライザーを選択します。
7. 再インデックスが完了すると、変更が有効になります。
カスタムアナライザーの効果の実証
たとえば、「glutinous rice」を含むドキュメントの場合、「Chinese - General」 アナライザーを使用すると予期しない結果になることがあります。「rice」で検索しても、「glutinous rice」を含むドキュメントは取得されません。上記の手順で説明したように、「test_zw」 カスタムアナライザーを追加し、アプリケーション構造を変更し、再インデックスを実行すると、結果として得られる用語が、カスタム解析の内容と一致するようになります。
追加の注意事項
-
アプリケーションですでに使用されているカスタムアナライザーにエントリを追加できますが、新しいエントリを有効にするには再インデックスを実行する必要があります。特定のドキュメントに変更を適用するには、該当のドキュメントを再アップロードしてください。この操作により、そのドキュメントのみが再インデックスされ、新しい介入エントリが適用されます。
-
エントリのクエリは 10 文字、値は 32 文字を超えることはできません。
-
エントリのクエリには、大文字、全角文字、または中国語の句読点を含めることはできません。
-
エントリの解析結果には、大文字、全角文字、または中国語の句読点を含めることはできません。
-
二次解析のトグルを無効にすると、OpenSearch は介入結果に厳密に従い、それ以上の分割は実行されません。有効にすると、介入の結果がさらに分割される場合があります。
-
カスタムアナライザーのベースとして [業種 - Eコマース汎用アナライザー] を使用するには、アプリケーションが Industry-specific Enhanced Edition である必要があります。
-
使用中のカスタムアナライザーは削除できません。