OpenSearch には、クエリ処理中に一般的な単語を除外する組み込みのストップワード辞書が含まれています。組み込み辞書が単語を誤って分類した場合 (一致すべき単語をフィルタリングしたり、無視すべき単語を通過させたりした場合)、介入辞書を作成してデフォルトの動作をオーバーライドします。
仕組み
介入辞書には、ストップワードと介入タイプをそれぞれ定義するエントリが含まれています:
| 介入タイプ | 効果 |
|---|---|
| 追加 | 単語をストップワードとしてマークします。その単語は取得から除外されます。 |
| ブロック | 組み込みのストップワードをオーバーライドします。その単語は取得に含まれます。 |
「追加」を使用する場合:クエリに出現するものの、結果を区別することのない単語がある場合です。たとえば、e コマースのショッピングガイドアプリケーションで、「海南にはバナナがある」というクエリの「には」は文法上の冗長な語です。これをストップワードとして追加することで、取得は「海南」と「バナナ」にフォーカスされるようになります。
「ブロック」を使用する場合:ご利用のドメインの単語が組み込みのストップワードと一致するものの、それが実際の意味を持つ場合です。組み込みのストップワードがデフォルトでフィルタリングされ、その単語を完全に無視した結果が返される場合、それをブロックすることで OpenSearch はその単語を取得に含めるようになり、ユーザーは正確な結果を得られます。
OpenSearch は、組み込み辞書と介入エントリを一緒に適用します。クエリ分析ルールでストップワードのフィルタリングを有効にすると、アタッチした介入辞書とともに、組み込みのストップワード辞書が自動的に選択されます。
前提条件
開始する前に、以下が準備できていることを確認してください:
クエリ分析ルールが設定された OpenSearch アプリケーション
OpenSearch コンソールへのアクセス権
介入辞書の作成
OpenSearch コンソールで、[検索アルゴリズムセンター] > [検索設定] に移動します。
[基本設定] ページで、左側のペインにある [辞書管理] をクリックします。
左上隅にある [作成] をクリックします。
辞書の名前を入力します。
[辞書タイプ] を [ストップワード] に設定します。
[保存] をクリックします。
辞書が辞書リストに表示されます。
介入エントリの追加
リストで対象の辞書を見つけ、[操作] 列の [エントリの管理] をクリックします。
[介入エントリの追加] をクリックします。
[介入エントリの追加] パネルで、[ストップワード] 列にストップワードを入力します。
[介入タイプ] 列で [追加] または [ブロック] を選択します。
[保存] をクリックします。
介入したい単語ごとにこの操作を繰り返します。各エントリには、一意のストップワードを使用する必要があります。
エントリの制約:
| 制約 | 値 |
|---|---|
| エントリあたりのストップワード数 | 1 |
| 辞書あたりのエントリ数 | 500 |
| 正規化 | 大文字は小文字に変換、全角文字は半角文字に変換 |
クエリ分析ルールへの辞書の適用
[クエリ分析ルール管理] ページに移動します。
既存のルールを開くか、新しいルールを作成します。
介入辞書をルールに関連付けます。
ルールを保存しますが、まだオンラインアプリケーションには公開しません。
テストと公開
ルールをオンライン環境に適用する前に、オフラインアプリケーションに対して検索テストを実行します。結果が期待されるストップワードの動作を反映していることを確認してください。
たとえば、「has」をストップワードとして追加した場合、「Hainan has bananas」と検索すると、「Hainan bananas」を含むすべてのドキュメントが返されるべきであり、完全一致のフレーズ「Hainan has bananas」のみを含むドキュメントだけが返されるわけではありません。
結果を確認した後、ルールをオンラインアプリケーションに公開します。
例
シナリオ: e コマースのショッピングガイドアプリケーションで、ユーザーが「Hainan has bananas」と検索すると、ほとんど結果が返されません。「has」という単語がストップワードとして認識されないため、OpenSearch は完全に一致するフレーズを含むドキュメントしか取得しません。
ソリューション: 介入辞書に「has」をストップワードとして追加し、その辞書をオンラインアプリケーションで使用されるクエリ分析ルールにアタッチします。
操作手順:
[検索アルゴリズムセンター] > [検索設定] > [辞書管理] に移動し、[作成] をクリックします。

辞書に名前を付け、[辞書タイプ] を [ストップワード] に設定します。

新しい辞書の [エントリの管理] をクリックします。[介入エントリの追加] パネルで、[ストップワード] を
hasに、介入タイプを [追加] に設定し、[保存] をクリックします。
[クエリ分析ルール管理] ページで [作成] をクリックし、辞書をルールにアタッチします。まだルールは公開しません。

検索テストを実行します。「Hainan has bananas」を検索すると、「Hainan bananas」を含むすべてのドキュメントが返されるようになります。
ルールをオンラインアプリケーションに公開します。
制限事項と注意事項
| 項目 | 詳細 |
|---|---|
| アカウントあたりの介入辞書数 | 20 |
| エントリあたりのストップワード数 | 1 (各エントリには一意のストップワードを使用する必要があります) |
| 辞書あたりのエントリ数 | 500 |
| 正規化 | 大文字は小文字に変換、全角文字は半角文字に変換 |
| 辞書の名前とタイプ | 作成後に変更不可 |
| 共有辞書 | 1 つの辞書を複数のクエリ分析ルールで使用可能 |
| 組み込み辞書 | ルールでストップワードのフィルタリングが有効になっている場合、組み込みのストップワード辞書が自動的に適用されます |
| 辞書の削除 | クエリ分析ルール (オンラインまたはオフライン) にアタッチされている辞書は削除できません。まず、すべてのルールからアタッチを解除してください |