検索クエリにおけるキーワードに基づくインテントの判断は、検索結果が要件を満たしているかどうかを決定します。クエリプランナーは、OpenSearch でクエリインテントを理解するために使用される機能です。クエリプランナーは、検索クエリに対してさまざまなインテリジェント分析を実行し、検索クエリを書き直してから、検索エンジンに送信します。次に、検索エンジンは検索クエリに基づいてデータを取得し、ソートします。クエリ分析には、同義語設定、ストップワードフィルタリング、スペル修正、用語の重み分析、カテゴリ予測などの機能を使用できます。さらに、E コマースシナリオでは、固有表現認識 (NER) 機能を使用できます。以下のセクションでは、クエリ分析の機能について説明し、E コマースシナリオでクエリ分析を実行する方法を示します。
ストップワードフィルタリング
検索クエリ内の無意味な単語は、組み込みのストップワード辞書に基づいて除外されます。無意味な単語とは、句読点や係助詞など、出現頻度は高いものの検索結果に影響を与えない単語のことです。
スペル修正
入力した検索クエリにスペルミスが含まれている場合、検索結果が期待に沿わない場合や、検索結果が返されない場合があります。この問題を解決するために、OpenSearch は入力した検索クエリのスペルをチェックします。OpenSearch のクエリ分析機能のスペル修正機能は、検索クエリに含まれている可能性のあるスペルミスを修正し、エラーが修正された新しい検索クエリを生成します。次に、OpenSearch は、スペル修正の信頼性に基づいて、エラーが修正された新しい検索クエリを使用して検索を実行するかどうかを判断します。
用語の重み分析
用語の重み分析機能は、検索クエリ内の各用語の重要度を評価し、評価された重要度を重みとして数値化します。OpenSearch は、重要度の低い用語を使用してドキュメントを取得しない場合があります。これは、取得されるドキュメントの数を増やすのに役立ちます。入力した検索クエリに重要度の低い用語が含まれており、これらの用語がドキュメントの取得プロセスに関係している場合、検索クエリに基づいて取得されるドキュメントの数は少なくなる可能性があります。
同義語設定
入力した検索クエリには、同じ意味を持つ同義語がある場合があります。たとえば、Apple phoneを検索すると、iPhoneに関連するコンテンツも検索結果に取得して表示できます。現実には、同じ意味を持つ同義語が多数存在する可能性があります。入力した単一の検索クエリでは、すべての同義語が反映されない場合があります。同義語を識別し、同義語に基づいて検索を実行する機能は、検索率を高めるために不可欠です。OpenSearch の同義語設定機能は、検索クエリの同義語に基づいてドキュメントを取得します。これにより、取得されるドキュメントの数が増加します。
NER
NER 機能は、検索クエリ内の特定の意味を持つセマンティックエンティティを認識します。クエリ分析機能は、識別されたエンティティカテゴリの重みに基づいてクエリ句を書き直し、取得されたドキュメントが期待に沿うようにします。OpenSearch は、エンティティの優先順位に基づいてクエリ句を書き直します。優先順位の高いエンティティはドキュメントの取得に使用されますが、優先順位の低いエンティティは取得には影響しませんが、ソートには影響します。
E コマースシナリオでのクエリ分析の実行例
たとえば、次の検索クエリが使用されます。Yang Mi Same-style Nike Slim Drasses Delivery-free.。次の例は、クエリ分析が実行されていないクエリ句を示しています。
query=(default:'Yang Mi' AND default:'Same-style' AND default:'Nike' AND default:'Slim' AND default:'Dr' AND default:'ass' AND default:'es' AND default:'Delivery-free' AND default:'.')ストップワードフィルタリング後、次のクエリ句が取得されます。
query=(default:'Yang Mi' AND default:'Same-style' AND default:'Nike' AND default:'Slim' AND default:'Dr' AND default:'ass' AND default:'es' AND default:'Delivery-free')
// ストップワードフィルタリング後、検索クエリの句読点が除外されます。
スペル修正後、次のクエリ句が取得されます。
query=(default:'Yang Mi' AND default:'Same-style' AND default:'Nike' AND default:'Slim' AND default:'Dresses' AND default:'Delivery-free')
// この例では、検索クエリ内のスペルミスのある用語「Drasses」が修正されています。
用語の重み分析後、次のクエリ句が取得されます。
query1=(default:'Yang Mi' AND default:'Same-style' AND default:'Nike' AND default:'Slim' AND default:'Dresses' RANK default:'Delivery-free')
query2=(default:'Yang Mi' RANK default:'Slim' RANK default:'Delivery-free' RANK default:'Same-style' RANK default:'Nike' RANK default:'Dresses')
// 用語の重み分析後、重みの低い用語「Delivery-free」は取得プロセスに関係しません。query1 に基づいて結果が返されない場合、検索エンジンは自動的に検索を再トリガーし、query2 に基づいて結果を返します。このようにして、結果を返すことができます。
同義語設定後、次のクエリ句が取得されます。
query1=(default:'Yang Mi' AND default:'Same-style' AND ((default:'Nike') OR (default:'nike')) AND default:'Slim' AND default:'Dresses' RANK default:'Delivery-free')
query2=(default:'Yang Mi' RANK ((default:'Nike') OR (default:'nike')) RANK default:'Slim' RANK default:'Delivery-free' RANK default:'Same-style' RANK default:'Dresses')
// この例では、同義語設定後、「nike」が「Nike」の同義語として追加されています。query1 に基づいて結果が返されない場合、検索エンジンは自動的に検索を再トリガーし、query2 に基づいて結果を返します。このようにして、結果を返すことができます。
NER 後、次のクエリ句が取得されます。
query1=(default:'Yang Mi' AND ((default:'Nike') OR (default:'nike')) AND default:'Slim' AND default:'Dresses' RANK default:'Delivery-free' RANK default:'Same-style')
query2=(((default:'Nike') OR (default:'nike')) AND default:'Dresses' RANK default:'Slim' RANK default:'Delivery-free' RANK default:'Same-style' RANK default:'Yang Mi')
// 次の NER 結果が得られます。Yang Mi (名前) Same-style (接尾辞) Nike または nike (ブランド) Slim (スタイル要素) Dresses (カテゴリ) Delivery-free (マーケティング)。
優先順位の高いエンティティはドキュメントの取得に使用されますが、優先順位の低いエンティティは取得には影響しませんが、ソートには影響します。query1 に基づいて結果が返されない場合、
検索エンジンは自動的に検索を再トリガーし、query2 に基づいて結果を返します。このようにして、結果を返すことができます。
コンソールでクエリ分析機能を設定する
手順 1: OpenSearch コンソールにログオンします。左側のナビゲーションペインで、検索アルゴリズムセンター > 検索設定を選択します。検索設定ページで、左側のペインのクエリ分析ルール設定をクリックします。クエリ分析ルール設定ページで、作成をクリックしてクエリ分析ルールを作成します。
手順 2: ルールの追加パネルで、ルール名、インデックス範囲、業種、有効な機能パラメーターなど、必要に応じてパラメーターを設定します。有効な機能パラメーターには複数の値を設定できます。
手順 3: ルールを作成したら、検索テストを実行します。クエリ分析のプロセスが正しいことを確認したら、ルールをデフォルトルールとして設定し、ルールをオンラインクエリに適用します。
クエリ分析ルール設定ページで、インデックスの向きをクリックし、ルールをデフォルトルールとして設定します。