同義語はビジネスシナリオによって異なります。同義語設定用の組み込み辞書に特定の同義語が存在しない場合や、組み込み辞書に無効な同義語が含まれている場合があります。この問題を解決するために、OpenSearch では同義語をカスタマイズできます。
同義語設定用の介入辞書を作成した後、クエリ分析ルールを作成または変更するときに、介入辞書を指定できます。このようにして、同義語設定に介入できます。
概要
OpenSearch は、組み込み辞書を提供して同義語の自動設定を実装します。また、[辞書管理] ページでカスタム介入辞書を作成して、同義語設定に介入することもできます。同義語設定に介入するには、次の手順を実行します。
同義語拡張用の介入辞書を作成します。介入辞書を作成するには、OpenSearch コンソールにログインします。左側のナビゲーションウィンドウで、[検索アルゴリズムセンター] > [検索設定] を選択します。[基本設定] ページで、左側のペインの [辞書管理] をクリックします。[辞書管理] ページで、[作成] をクリックします。[クエリ分析辞書の作成] パネルで、介入辞書の名前を入力し、辞書タイプを選択して、[保存] をクリックします。介入辞書が作成されると、辞書リストに表示されます。
介入辞書に介入エントリを追加および管理します。辞書リストで作成した辞書を見つけ、[アクション] 列の [エントリの管理] をクリックして、[エントリの管理] ページに移動します。このページで、必要に応じて介入エントリを追加および管理します。
次の方法で同義語設定に介入できます。
同義語を追加し、検索クエリに対して有効にします。その後、検索クエリを使用して検索を実行すると、OpenSearch は検索クエリを含むドキュメントと、同義語を含むドキュメントの両方を返します。
同義語を追加し、検索クエリに対してブロックします。その後、検索クエリを使用して検索を実行すると、OpenSearch は同義語を含むドキュメントを返しません。
介入辞書を使用します。介入辞書に介入エントリを追加した後、必要に応じて、アプリケーションのクエリ分析ルールに介入辞書を関連付けることができます。
介入辞書をテストして公開します。介入辞書がクエリ分析ルールに関連付けられた後、ルールをオンライン環境に適用する前に検索テストを実行することをお勧めします。これにより、期待される検索パフォーマンスが確保されます。
介入エントリの一致ルール
指定したカスタム検索クエリの 1 つ以上(最大 5 つ)の連続するセマンティック用語がストップワードではなく、介入エントリで事前定義された検索クエリと一致する場合、介入エントリが有効になります。
たとえば、カスタム検索クエリが
christian dior aj co-branding low-cut sneakersとして指定され、次の介入エントリが追加されているとします。christian dior -> dior、aj -> air jordan、co-branding -> collaboration。この場合、3 つの介入エントリはすべて有効になります。その結果、OpenSearch は、「dior aj co-branding low-cut sneakers」、「dior air jordan co-branding low-cut sneakers」、「dior aj collaboration low-cut sneakers」、「dior air jordan collaboration low-cut sneakers」など、8 つの拡張検索クエリのいずれかを含むドキュメントを返します。分析後のカスタム検索クエリで重みの高い用語の介入エントリが優先されます。たとえば、次の介入エントリが追加されているとします。
sphagitis -> pharyngitis, quinsy, excessive internal heat, sore throat, throat inflammation、low fever -> fever, fervescence, high body temperature、medicine -> traditional chinese medicine, western medicine, chinese patent drug。カスタム検索クエリが「which medicine is best for sphagitis low fever」として指定されています。分析後、「sphagitis」と「medicine」という用語の重みは 7 ですが、「low fever」という用語の重みは 4 です。その結果、有効になる介入エントリは「sphagitis -> pharyngitis, quinsy, excessive internal heat, sore throat, throat inflammation」と「medicine -> traditional chinese medicine, western medicine, chinese patent drug」です。分析後のカスタム検索クエリに複数の用語が同じ重みを持つ場合、カスタム検索クエリで最初にランク付けされた用語の介入エントリが優先されます。たとえば、次の介入エントリが追加されているとします。
apple mobile phone -> iphoneとmobile phone charger -> power bank。カスタム検索クエリがapple mobile phone chargerとして指定されています。この場合、有効になる介入エントリはapple mobile phone -> iphoneです。事前定義された検索クエリが同じ始まりを持つ介入エントリの場合、事前定義された検索クエリが長い介入エントリが優先されます。事前定義された検索クエリの長さは、分析後のセマンティック用語の数を示します。たとえば、次の介入エントリが追加されているとします。
mobile phone charger -> power bankとmobile phone -> cellphone。カスタム検索クエリがwhich mobile phone charger brand is goodとして指定されています。この場合、有効になる介入エントリはmobile phone charger -> power bankです。人間の介入が優先されます。カスタム介入エントリが組み込みエントリと競合する場合、カスタム介入エントリのみが有効になります。競合は、介入エントリの事前定義された検索クエリに、OpenSearch によって検索クエリ用に定義されたセマンティック用語が含まれているか、含まれている状況を示します。次の例は詳細情報を示しています。
例 1: 介入エントリの事前定義された検索クエリには、OpenSearch によって検索クエリ用に定義されたセマンティック用語が含まれています。関係する組み込みエントリは「biscuit -> cookie」で、カスタム検索クエリは
baked biscuitとして指定されています。この場合、カスタム検索クエリのロジックは「baked AND (biscuit OR cookie)」に拡張されます。カスタム介入エントリbaked biscuit -> baked cookieが追加されると、カスタム検索クエリのロジックは「baked biscuit OR baked cookie」に拡張されます。組み込みエントリ「biscuit -> cookie」は無視されます。例 2: 介入エントリの事前定義された検索クエリは、OpenSearch によって検索クエリ用に定義されたセマンティック用語に含まれています。関係する組み込みエントリは
apple mobile phone -> iphoneで、カスタム検索クエリは「apple mobile phone」として指定されています。この場合、カスタム検索クエリのロジックは「apple mobile phone OR iphone」に拡張されます。カスタム介入エントリmobile phone -> cellphoneが追加されると、カスタム検索クエリのロジックは「apple AND (mobile phone OR cellphone)」に拡張されます。
注:
許可される同義語の数は、分析後の指定された検索クエリの用語の数によって決まります。単一の検索クエリに対して許可される同義語の最大数は現在 36 です。
例
シナリオ: E コマースショッピングガイドサービスの OpenSearch アプリケーション用に、同義語設定機能を備えたクエリ分析ルールを作成しました。これらのルールをオンラインアプリケーションに適用した後、返された検索結果は満足のいくものではありませんでした。この問題を解決するために、同義語設定への介入が実装されています。
問題の説明: ユーザーが検索クエリ「apple」を入力した後、目的の商品に関するドキュメントが取得されません。このようなドキュメントはデータベースに存在しますが、検索クエリ「apple」ではなく、同義語「apple inc.」が含まれています。
原因: 同義語設定用の組み込み辞書では、「apple inc.」は「apple」の同義語として指定されていません。
解決策: 同義語設定用の介入辞書を作成し、検索クエリ「apple」に介入エントリ「apple -> apple inc.」を追加します。次に、オンラインアプリケーションのクエリ分析ルールに介入辞書を関連付けます。
手順:
OpenSearch コンソールにログオンします。左側のナビゲーションウィンドウで、[検索アルゴリズムセンター] > [検索設定] を選択します。[基本設定] ページで、左側のウィンドウの [辞書管理] をクリックします。[辞書管理] ページで、[作成] をクリックします。

クエリ分析ディクショナリを作成パネルで、介入ディクショナリの名前を入力し、[ディクショナリ タイプ] パラメーターを シノニム に設定します。

作成した介入辞書を見つけ、[アクション] 列の [エントリの管理] をクリックします。表示されるページで、[介入エントリの追加] をクリックします。[介入エントリの追加] パネルで、[検索クエリ] フィールドに apple を入力し、[同義語の追加] フィールドに apple inc. を入力して、介入エントリを追加 をクリックします。

[クエリ分析ルールの設定] ページで、作成した同義語設定用の介入辞書をクエリ分析ルールに関連付けます。この手順では、ルールをオンラインアプリケーションに適用しないでください。

検索テストを実行します。OpenSearch は、同義語「apple inc.」を含むドキュメントと検索クエリ「apple」を含むドキュメントの両方を返します。検索パフォーマンスは期待どおりです。

使用上の注意
介入辞書を作成した後、その名前とタイプを変更することはできません。
異なる介入エントリには異なる検索クエリを指定する必要があります。追加された介入エントリに対して有効化またはブロックされる同義語を追加、削除、および変更できます。
単一の検索クエリに対して、有効化またはブロックされる複数の同義語を指定できます。同義語はセミコロン(;)で区切ります。
介入エントリが [検証中] 状態のままの場合は、[更新] をクリックして最新の状態を取得できます。
介入辞書は複数のクエリ分析ルールに関連付けることができます。
OpenSearch は、組み込み辞書と追加した介入エントリを一緒に使用します。クエリ分析ルールを作成するときに同義語設定を有効にすると、同義語設定用の組み込み辞書が自動的に選択されます。
介入辞書がクエリ分析ルールに関連付けられている場合、ルールがオンラインアプリケーションまたはオフラインアプリケーションに適用されているかどうかに関係なく、辞書を削除することはできません。最初にルールから辞書の関連付けを解除する必要があります。
制限
同義語設定用の介入辞書は最大 20 個作成できます。
同義語設定用の介入エントリを追加するときは、検索クエリを 1 つだけ指定できます。単一の検索クエリに対して、有効化またはブロックできる同義語は最大 5 つです。
同義語設定用の介入辞書には、最大 1,000 の介入エントリを追加できます。
介入エントリの事前定義された検索クエリが、分析後のカスタム検索クエリのいずれかの用語と一致する場合、介入エントリが有効になります。たとえば、「beijing -> capital of china」という介入エントリが追加されているとします。この場合、カスタム検索クエリが「beijing」として指定されていると、OpenSearch は「beijing」を含むドキュメントと「capital of china」を含むドキュメントの両方を返します。カスタム検索クエリが「welcome to beijing」として指定されていると、OpenSearch は「welcome to beijing」を含むドキュメントと「welcome to capital of china」を含むドキュメントの両方を返します。
OpenSearch は介入エントリのコンテンツを正規化します。すべての大文字は小文字に変換され、すべての全角文字は半角文字に変換されます。
SDK の詳細については、「PushInterventionDictionaryEntries」をご参照ください。
新しい OpenSearch コンソールを使用する場合は、一度に複数の介入エントリを同義語設定に追加するときに、次の JSON 形式でコードを入力する必要があります。
[{"cmd":"add","word":"hey","alias":["hei","hei2"],"antiAlias":["hi"]}]古い OpenSearch コンソールを使用する場合は、一度に複数の介入エントリを同義語設定に追加するときに、次の JSON 形式でコードを入力する必要があります。
[{"cmd":"add","word":"hey","alias":["hei","hei2"],"anti_alias":["hi"]}]