Search Results
ご覧のページは、お客様の利便性のために一部機械翻訳されています。また、ドキュメントは頻繁に更新が加えられており、翻訳は未完成の部分が含まれることをご了承ください。最新情報は都度公開されておりますため、必ず英語版をご参照ください。翻訳に問題がある場合は、 こちら までご連絡ください。

検索結果の動作

以前、あなたは 検索結果を表示する方法を 学びました。 検索結果を強化できる追加の検索結果の概念と構成があります。

ファセットを使用した結果のフィルタリング

結果はファセットを使ってフィルタリングされます。 ユーザーが検索ワードを入力すると、検索結果のリストと検索ファセットが表示されます。検索ファセットとは、共通の特徴を持つ結果をグループ化するバケットのようなものです。

管理者はファセットを設定することができます。 検索ファセット について読んで、詳細を確認してください。

検索結果の関連性

検索エンジンは、検索結果のランキング付けに、検索エンジンが計算したスコア—である関連性—を使用します。 検索結果のスコアには、使用する検索エンジンによって様々な要因があります。

結果ランキング は、返される検索結果の順序を制御するのに役立ちます。

権限と検索結果

アセットに対する VIEW 権限 を持たないユーザーは、検索結果にそのアセットを表示できません。 サイト管理者権限を持つログインユーザーは、ゲストユーザーよりも多くの検索結果が表示される可能性が高い。

権限チェックには2つのラウンドがあります。 最初の権限チェックであるプレフィルタリングは、検索エンジンのインデックスで行われます。 データベースの権限情報をチェックするよりも高速ですが、検索インデックスに古い権限情報が含まれる場合があります。 検索エンジンのインデックスに正確で最新の権限情報が反映されていることを確認するため、Liferayは検索結果を表示する直前、フィルタリング処理後に、最終段階で2回目の権限チェックを実行します。

初期の権限チェック

検索結果の許可フィルタリングの最初のラウンドは、検索クエリにフィルタ句を追加します。 これにより、検索エンジンから返される結果は事前にフィルタリングされ、検索インデックスに登録されている権限情報に基づいて、現在のユーザーが閲覧できる結果のみが含まれるようになります。

この初期権限チェックは、コントロールパネル → 設定 → システム設定 → 検索 → 権限チェッカーで設定できます。

権限チェッカーの設定で、権限の期間制限を設定します。

権限期間制限: このレベルの権限チェックが中止される前に、検索クエリに追加される権限検索句の数を制限します。 権限チェックは、以下で説明する最終的な権限フィルタリングのみに依存します。

権限の条件を制限する唯一の理由はパフォーマンスです。 多数のサイト、組織、アカウントへの管理者権限を持つユーザーは、クエリに追加される多くの権限条件を生成します。 クエリ内の用語が多すぎると、検索エンジンがタイムアウトする可能性があります。

最終的な権限の確認

結果をUIに表示する前に、最終的な権限チェックが行われます。 例えば、ユーザーが liferayを検索すると、検索エンジンはインデックス化された権限を考慮して、関連するすべてのフォーラム投稿を返します。 検索結果処理では、返されたフォーラム投稿のリストを順に処理していく際に、データベースの現在の状態と照らし合わせて権限を確認し、ユーザーが投稿とそのカテゴリを閲覧できることを確認します。 ユーザーが閲覧権限を持たないカテゴリに一致するフォーラム投稿が存在する場合、その投稿は検索結果リストから除外されます。

この最終段階の権限チェックは、コントロールパネル → 構成 → システム設定 → 検索 → 既定の検索結果権限フィルタで設定できます。 次の2つの設定が含まれます。

デフォルトの検索結果の権限フィルタ設定で、追加の権限を設定します。

パーミッションフィルター済み検索結果精度のカウンターしきい値: 結果がカウントされる前に権限・フィルタリングする検索結果の最大数を指定します。 しきい値を高くすると、カウントの精度は向上しますが、パフォーマンスは低下します。 現在表示されているページの結果は常にチェックされるため、検索結果の1ページの表示数よりも小さい値を指定すると、この動作が事実上無効になります。 この設定を構成する場合は、検索クエリ結果ウィンドウの制限と一致させる必要があります。

権限フィルタリングの時間制限: 権限フィルタリングに許可される時間をミリ秒単位で設定します。 権限フィルタリングに到達すると、現在のバッチの処理が完了し、保留中のバッチはすべて破棄されます。 デフォルト値 0 は制限なしを示します。

検索クエリの結果ウィンドウの上限を設定します。 各権限チェックリクエストの最大バッチサイズを設定します。 これはページネーションの影響も受けます。 制限がない場合、1ページあたり100件の結果があり、ユーザーが検索結果の200ページ目まで一気に移動したい場合、1ページ目から200ページ目までのすべての結果をチェックして、ユーザーに閲覧権限があることを確認する必要があります。 権限チェックの結果は20,000です。 これを検索エンジンとの間で一度に行うと、パフォーマンスの問題が発生する可能性があります。

検索とステージング

ステージングでは、コンテンツは公開(ライブサイト)される前に、まずプレビューおよびテスト環境に配置されます。 検索インデックスに追加されたコンテンツは、検索APIがアイテムがライブであるかどうかを解読できるようにマークされます。 ライブ版サイトでは、ライブ版サイト用にマークされたコンテンツのみが検索可能となります。 本サイトのステージングバージョンでは、ライブまたはステージングされたすべてのコンテンツが検索可能です。

検索と公開

Publications が有効になっている場合、コンテンツは特定の出版物に関連付けられます。 公開に追加されたコンテンツは、検索APIがアイテムが生産中であるかどうかを解読できるようにマークされます。 サイトの製品版では、 公開された コンテンツのみが検索結果に表示されます。 進行中の公開では、プロダクションコンテンツや特定の公開に対するコンテンツを返すことができます。

結果の要約

結果の要約には、アセットの開発者が、アセットを検索する人にとって最も有用であると考えたドキュメントの情報が含まれています。 各アセットでは、サマリーに含まれるフィールドが異なります。 テキストコンテンツのあるアセットでは、タイトルとコンテンツの一部を含む一般的なサマリー形式で、タイトルが最初に表示されます。 2行目には必ずアセットタイプが表示され、最後の行には検索ワードにマッチしたコンテンツのスニペットが表示されます。 ドキュメントとメディアドキュメントなど、コンテンツ項目のないアセットは、代わりに説明を表示します。

ユーザーは異なります。 ユーザー結果の概要には、ユーザーのフルネームと資産の種類(ユーザー)のみが表示されます。

ユーザーの場合は、ユーザーのフルネームのみが表示されます。

他のアセットを含むアセット(Webコンテンツおよびドキュメント & Mediaフォルダ)や、コンテンツが表示に適していないアセット(動的データリストレコードおよびカレンダーイベント)については、タイトル、アセットタイプ、および説明を結果のサマリーに表示する方が合理的です。

説明文を要約して表示するドキュメントフォルダ。

Liferay DXP 2024.Q2/Portal GA120以降、ユーザーは検索結果ウィジェットからドキュメントとメディアドキュメントを直接ダウンロードできるようになりました。 標準搭載のウィジェットテンプレートでは、ドキュメントおよびメディアドキュメントの結果概要に、ダウンロード権限を持つユーザー向けのダウンロードリンクが含まれています。 カスタム表示テンプレート を調整してダウンロードリンクを追加する必要があります。 ダウンロードリンクは、 ウィジェット表示テンプレート エディタの事前定義変数として利用できます。

ユーザーは検索結果ウィジェットから直接、ドキュメントやメディアファイルをダウンロードできます。

どのフィールドをサマリーに対応させるかはアセット開発者が決定しますが、検索時にはサマリーフィールドのどの部分を表示するかを正確に決定するロジックが実行されます。 例えば、 コンテンツ フィールドには多くのテキストが含まれていますが、サマリーではそのすべてが表示されません。 その代わりに、フィールドのテキストの関連する部分が表示されます。 検索されたキーワードがサマリーフィールドに存在する場合、フィールドのその部分がサマリーで使用されます。 さらに、マッチしたキーワードはサマリーでハイライトされます。

結果のサマリーにどのフィールドを含めるかを決定するために、「検索結果」ウィジェットは3つの点を考慮します。

  1. 概要に含めるアセット固有のフィールドは、 ModelSummaryContributor Javaクラス(Liferay独自のクラスおよびサードパーティの開発者によってデプロイされたクラス)で定義されます。 このロジックの古い実装は、 Indexer.getSummaryで提供されていました。

  2. 検索結果の概要に表示できるフィールドは、検索結果の表示ロジック (SearchResultsSummaryDisplayBuilder および SearchResultsSummaryDisplayContext ) によって定義されます。

  3. ウィジェットテンプレート は、 検索結果 ウィジェット(デフォルトではリスト )で使用され、検索結果の表示に関するすべての事項、つまり概要に含める利用可能なフィールドのどれについても最終的な決定権を持ちます。

ハイライト

概要に表示される検索用語はデフォルトでハイライト表示されています。 これが望ましくない場合は、 ウィジェット設定画面で無効にしてください。

検索キーワードは、検索結果の一覧でハイライト表示されます。

ハイライトは、なぜその結果が返されたのかを示唆する視覚的な手がかりとして役立ちますが、注意が必要です。 ヒットした商品のスコアが高く、結果的に検索結果の上位に表示されても、サマリーにハイライトが表示されないことがあります。 これは、すべてのインデックス付きフィールドが要約に表示されるわけではないためです。 アーサー・C・クラークというユーザーを考えてみましょう。 彼は、 acc@authors.orgの電子メールアドレスを持っており、検索可能です。 ユーザーごとの検索結果概要にはユーザーのフルネームしか含まれていないため、クラーク氏をメールアドレスで検索するとユーザーは表示されますが、検索語句はハイライト表示されません。

検索結果の中には、必ずしもハイライトされた用語がないものもあります。

検索結果のページを返す

Liferay 7.2以降では、コンテンツページの ページコンテンツ が検索可能です。 例えば、コンテンツページ上の段落フラグメントに含まれるテキストを検索できます。 検索インデックスはデフォルトのエクスペリエンスに限定されているため、パーソナライズされたコンテンツのバリエーションは検索対象になりません。

対照的に、最新のLiferay 7.2および7.3、ならびにすべてのLiferay 7.4以降のリリースでは、プライベートコンテンツページおよびステージングされたページのページコンテンツはインデックス化されないため、ユーザーがページを表示する権限を持っているかどうかに関わらず、検索結果のリストには表示されません。

非公開ページのコンテンツは検索できません。

非公開ページやステージングされたページではコンテンツフィールドはインデックスされず検索もできませんが、他のフィールドは利用可能です。 例えば、公開されているコンテンツページと非公開のコンテンツページの両方のタイトルフィールドが7.2ではインデックスされているため、非公開のコンテンツページのタイトルに一致するキーワードを検索しても、「検索結果」ウィジェットにヒットします。

公開・非公開ページのタイトルを検索することができます。

Liferay 7.4 U22+およびGA22+では、新規インストール時にプライベートページは無効になっています。 ただし、必要に応じて有効にすることもできます。 詳細については、 プライベートページの有効化 を参照してください。

コンテンツページのインデックスに登録されているフィールドを確認するには、[検索結果]ウィジェットの [ドキュメントフォームに結果を表示] の設定を有効にします。 詳細については、 検索エンジン文書の検査 を参照してください。

コンテンツページのドキュメントビューを検査して、どのフィールドがインデックスされているかを確認します。

Liferay 7.4 GA25+/U25+ では、ウィジェットページをタイトルで検索することもできます。

検索結果でオブジェクトを返す

各オブジェクト定義を検索可能にするには、Details タブで Enable Indexed Search 設定を選択します。 有効にすると、各フィールドを検索可能に設定することもできます。オブジェクトエントリは、検索結果ウィジェットで照会して返すことができます。

オブジェクトエントリには、タイトルと内容の概要が表示されます。

Liferay 7.4 U64+/GA64+ では、検索結果のオブジェクトエントリをクリックすると、エントリの 表示ページ にリダイレクトされ、結果の詳細ビューが表示されます。 オブジェクトに表示ページテンプレートが存在しない場合は、デフォルトのレイアウトが使用されます。 エントリ詳細画面の戻る矢印をクリックすると、検索ページに戻ります。

デフォルトの表示ページテンプレートが存在しない場合は、自動的に作成されます。

Liferay DXP 2024.Q1+/Portal GA112+ では、検索ユーザーがアカウントスコープまたは通常スコープのロールで アカウント > アカウントエントリ: ビュー 権限を持っている場合、 アカウント制限オブジェクト エントリが検索結果に表示されます。