結果の検索
検索結果は、ナビゲート、ソート、およびフィルタリングが簡単でなければなりません。 デフォルトの検索機能と多くの設定オプションを理解することで、ユーザーに最適な検索体験を提供することができます。
複数の要因が検索結果に影響します:
- アセットのインデックス付け方
- 使用した検索ウィジェット
- 結果が後処理されるかどうか
コンテンツタイプの開発者(Liferay DXPでは アセット)は、アセットの情報がどのようにインデックス付けされるか、およびその情報がどのように検索され、検索結果に返されるかについて、多くをコントロールします。 さらにコントロールするために、 インデクサーポストプロセッサ は、アセットのインデックス作成動作と、アセットを検索するための検索クエリの構築方法を変更できます。
検索設定で行うほぼ全ての作業は、検索結果に影響を与えることに注意してください。特に同義語セット と 結果ランキング は、検索結果に影響します。
以下の概念は、設定の変更を開始する前に理解することが不可欠です。
ファセットを使用した結果のフィルタリング
結果は、 ファセット を使用してフィルタリングされます。 ほとんどのユーザーは、特に商取引活動中に、他のアプリケーションで同様のフィルタリング機能に遭遇しています。 ユーザーが検索用語を入力すると、結果のリストが表示され、検索ファセットを選択すると結果が絞り込まれます。 ファセットは、共通の特性を持つ結果のバケットと考えることができます。
ファセットは構成可能です。 詳しくは、ファセットの設定についてをご覧ください。
検索結果の関連性
検索エンジンは、 関連性 によって結果を処理し、並び替えます。 関連性は、検索エンジンによって計算されたスコアです。 スコアは、 検索エンジンが提供するアルゴリズム によって計算されます。
結果の関連性は構成可能です。
- 検索の調整は、ランキングをカスタマイズするための強引な方法です。
- Liferay Enterprise SearchのLearning to Rank機能は、より関連性の高い結果を返すようにトレーニングできる機械学習モデルです。
- 検索インサイトウィジェットは、関連性スコアを表示して、結果が特定の位置に表示される理由を明らかにします。
- 結果をインデックス付きフィールドでソートし、関連性スコアを上書きします。
権限と検索結果
アセットを表示するための 権限 を持たないユーザーの検索結果が表示されません。 サイト管理者のロールを持つログインしたユーザーは、匿名のゲストよりも多くの検索結果を表示する可能性があります。
権限チェックには2つのラウンドがあります。
*事前フィルタリング は、検索エンジンのインデックスで発生します。 データベースの権限情報をチェックするよりも高速ですが、検索インデックスに古い権限情報が含まれる場合があります。
*ポストフィルタリング は、検索エンジンのインデックスに正しい最新の権限情報があることを確認するために、表示する前に結果に対して行われます。
事前フィルタリング
事前フィルタリングは、検索クエリにフィルター句が追加されるため、現在のユーザーが表示できる結果が検索に含まれます。
クエリに追加される検索句の数を制御することにより、[コントロールパネル]→[構成]→[システム設定]→[検索]→[権限チェッカー]で事前フィルタリングを構成できます。
権限期間制限: このレベルの権限チェックが中止される前に、検索クエリに追加される権限検索句の数を制限します。 権限チェックは、以下で説明する最終的な権限フィルタリングのみに依存します。
権限の条件を制限する唯一の理由はパフォーマンスです。 多くのサイトおよび組織への管理アクセス権を持つユーザーは、クエリに追加された多くの権限条件を生成します。 クエリ内の用語が多すぎると、検索エンジンがタイムアウトする可能性があります。
ポストフィルタリング
ポストフィルタリングは、UIに結果を表示する前に行われます。 たとえば、ユーザーが liferay を検索すると、検索エンジンは関連するすべてのフォーラム投稿を返します。 検索結果がこのリストを反復処理するときに、各投稿の最後の権限チェックを1回実行して、ユーザーが投稿とそのカテゴリを表示できることを確認します。 ユーザーが投稿を表示する権限を持っていない場合、その投稿は検索結果のリストに表示されません。
ポストフィルタリングは、[コントロールパネル]→[構成]→[システム設定]→[検索]→[デフォルトの検索結果アクセス許可フィルター]で構成できます。 次の2つの設定が含まれます。
パーミッションフィルター済み検索結果精度のカウンターしきい値: 結果がカウントされる前に、パーミッションフィルターに検索結果の最大数を指定します。 しきい値を高くすると、カウントの精度は向上しますが、パフォーマンスは低下します。 現在表示されているページの結果は常にチェックされるため、検索結果の1ページの表示数よりも小さい値を指定すると、この動作が事実上無効になります。
検索クエリ結果最大数: 権限チェックリクエストごとに最大バッチサイズを設定します。 これはページネーションの影響を受けます。 1ページに100件の結果があり、検索結果の200ページにジャンプする場合、1ページから200ページまでのすべての結果をチェックして、権限があることを確認する必要があります。 権限チェックの結果は20,000です。 これを検索エンジンとの間で一度に行うと、パフォーマンスの問題が発生する可能性があります。 権限チェックリクエストごとの最大バッチサイズを設定します。
検索とステージング
ステージングの場合、コンテンツは、ライブサイトに公開される前に、プレビューおよびテスト環境に最初に配置されます。 インデックス付きコンテンツはマークされているため、検索APIはアイテムがライブかどうかを認識します。 サイトのライブバージョンでは、インデックス付きのライブコンテンツのみが検索可能です。
サイトのステージバージョンでは、すべてのコンテンツ(ライブまたはステージ)が検索可能です。
結果の要約
結果の要約は、元のアセットからの情報を凝縮し概要化したものです。 アセット開発者は、要約に含めるフィールドを選択します。 一般的な概要は、 タイトル と コンテンツ の一部を含み、タイトルが先に表示されます。 アセットタイプは常に2行目に表示され、その後に検索語に一致するコンテンツのスニペットが続きます。 ドキュメントとメディアドキュメントなど、コンテンツ項目のないアセットは、代わりに説明を表示します。
ユーザーを検索する検索結果でアセットをクリックすると、Asset Publisher に表示されます(検索結果ウィジェットで View in Context オプションが選択されていない場合は)。 ただし、ユーザーは異なります。 これらは、アセットパブリッシャーアプリケーションでは表示されない、不可視のアセットと考えてください。 ユーザーは他のインデックス資産と一緒に検索結果として表示されますが、ユーザーをクリックするとそのユーザーのプロフィールページが表示されます。 公開された個人ページが無効になっている場合、検索結果のリストからユーザーをクリックすると、白紙のページが表示されます。 ユーザーのフルネームとアセットタイプ(ユーザー)のみがユーザー結果の概要に表示されます。
他のアセット(Webコンテンツとドキュメント & メディアフォルダー)を含むアセット、またはコンテンツを表示できない(動的データリスト・レコードとカレンダーの予定)アセットの場合、タイトル、アセットタイプ、および説明を結果の要約に表示する方が理にかなっています。
アセット開発者は集計が有効なフィールドを決定しますが、検索時に呼び出されるロジックは、表示する集計フィールドの部分を正確に決定します。 たとえば、コンテンツ
フィールドには多くのテキストを含めることができますが、要約には、キーワードを含むフィールドのテキストの関連スニペットのみが表示され、ハイライトされます。
ハイライト
概要に表示される検索用語はデフォルトでハイライト表示されています。 これが望ましくない場合は、[ポートレット設定]画面で無効にしてください。
ハイライトは、結果が返される理由を示す便利な視覚的な手掛かりですが、高スコアのヒットは、概要にハイライトを持たなくても、結果の上部に表示される可能性がありますので注意してください。 これは、すべてのインデックス付きフィールドが要約に表示されるわけではないためです。 Arthur C. Clarkeという名前のユーザーについて考えてみましょう。 彼は、 acc@authors.org という検索可能な電子メールアドレスを持っています。 ユーザーの結果の要約にはフルネームのみが含まれているため、メールアドレスでクラーク氏を検索するとユーザーが返されますが、ハイライト表示されている用語はありません。
その他、検索結果にハイライトが表示されない場合があります。