検索の基本事項 search-essentials
概要 overview
検索機能は、Adobe Experience Manager(AEM) Communities の重要な機能です。 AEM Communitiesには、AEM プラットフォーム検索機能に加えて、ユーザー生成コンテンツ(UGC)を検索するための UGC 検索 API が用意されています。 UGC には、他のAEM コンテンツやユーザーデータとは別に入力および保存される一意のプロパティがあります。
Communities の場合、一般的に検索される 2 つの項目は次のとおりです。
-
コミュニティメンバーが投稿したコンテンツ
- AEM Communitiesの UGC 検索 API を使用します。
-
ユーザーとユーザーグループ(ユーザーデータ)
- AEM プラットフォームの検索機能を使用します。
この節のドキュメントは、UGC を作成または管理するカスタムコンポーネントを作成する開発者が関心を持つものです。
セキュリティ・ノードとシャドウ・ノード security-and-shadow-nodes
カスタムコンポーネントの場合は、SocialResourceUtilities メソッドを使用する必要があります。 UGC を作成して検索するユーティリティメソッドによって、必要な シャドウノードが確立され、メンバーにリクエストに対する正しい権限が付与されているかどうかが確認されます。
SRP ユーティリティで管理されないものは、モデレートに関連するプロパティです。
UGC および ACL シャドウノードへのアクセスに使用されるユーティリティメソッドについて詳しくは、SRP および UGC の初期設定を参照してください。
UGC Search API ugc-search-api
UGC 共通ストアは、様々なストレージリソースプロバイダー(SRP)の 1 つによって提供され、それぞれが異なるネイティブクエリ言語を持つ可能性があります。 したがって、選択した SRP に関係なく、カスタムコードは、選択した SRP に適したクエリ言語を呼び出す UGC API パッケージ(com.adobe.cq.social.ugc.api)のメソッドを使用する必要があります。
ASRP 検索 asrp-searches
ASRP の場合、UGC はAdobeクラウドに保存されます。 UGC はCRXでは表示されませんが、オーサー環境とPublish環境の両方から モデレートを使用できます。 UGC Search API の使用は、ASRP に対して、他の SRP に対するのと同じように機能します。
ASRP 検索を管理するツールは現在存在しません。
検索可能なカスタムプロパティを作成する場合は、 命名規則に従う必要があります。
MSRP 検索 msrp-searches
MSRP の場合、UGC は、検索に Solr を使用するように設定された MongoDB に保存されます。 UGC はCRXでは表示されませんが、オーサー環境とPublish環境の両方から モデレートを使用できます。
MSRP および Solr について:
- AEM プラットフォーム用の埋め込み Solr は、MSRP には使用されません。
- AEM プラットフォームにリモート Solr を使用している場合、MSRP と共有される可能性がありますが、異なるコレクションを使用する必要があります。
- Solr は、標準検索または多言語検索(MLS)用に設定できます。
- 設定の詳細については、MSRP の Solr 設定を参照してください。
カスタム検索機能では、UGC 検索 API を使用する必要があります。
検索可能なカスタムプロパティを作成する場合は、 命名規則に従う必要があります。
JSRP 検索 jsrp-searches
JSRP の場合、UGC は Oak に保存され、入力されたAEM オーサーインスタンスまたはPublish インスタンスのリポジトリにのみ表示されます。
UGC は通常Publish環境で入力されるので、マルチパブリッシャーの実稼働システムの場合は、入力したコンテンツがすべてのパブリッシャーから表示されるように、パブリッシュファームではなく パブリッシュクラスターを設定する必要があります。
JSRP の場合、Publish環境で入力された UGC は、オーサー環境では表示されません。 したがって、すべての モデレートタスクはPublish環境で行われます。
カスタム検索機能では、UGC 検索 API を使用する必要があります。
Oak インデックス作成 oak-indexing
AEM 6.2 以降、Oak インデックスは、AEM プラットフォームの検索用に自動的には作成されませんが、パフォーマンスを向上させ、UGC 検索結果を表示する際のページネーションをサポートするために、AEM Communities用に追加されています。
カスタムプロパティが使用中で検索が遅い場合は、カスタムプロパティのパフォーマンスを高めるために、カスタムプロパティに追加のインデックスを作成する必要があります。 移植性を維持するために、検索可能なカスタムプロパティを作成する際は、 命名規則に従います。
既存のインデックスを変更したり、カスタムインデックスを作成したりするには、Oakのクエリとインデックス作成を参照してください。
Oak インデックスマネージャーは、ACS AEM Commons から入手できます。 これには次の機能があります。
- 既存のインデックスのビュー。
- インデックス再作成機能。
CRXDE Lite の既存のOak インデックスを表示するには、次の場所にあります。
/oak:index/socialLucene
インデックス付き検索プロパティ indexed-search-properties
既定の検索プロパティ default-search-properties
様々な Communities 機能で使用される検索可能なプロパティの一部を次に示します。
カスタムプロパティの命名 naming-of-custom-properties
カスタムプロパティを追加する場合、これらのプロパティを表示して、UGC 検索 API で作成された並べ替えと検索を行うには、プロパティ名にサフィックスを追加する 必須 必要です。
サフィックスは、スキーマを使用するクエリ言語用です。
- プロパティが検索可能として識別されます。
- データタイプを識別します。
Solr は、スキーマを使用するクエリ言語の例です。
メモ:
-
Text はトークン化された文字列ですが、String はトークン化されていません。 あいまい検索に対しては、テキスト を使用します。
-
複数の値を持つ型の場合、サフィックスに「s」を追加します。次に例を示します。
viewDate_dt
:単一の日付プロパティviewDates_dts
:dates プロパティのリスト
フィルター filters
コメントシステムを含むコンポーネントでは、エンドポイントに加えてフィルターパラメーターもサポートされています。
AND および OR 論理のフィルター構文は、次のように表されます(URL エンコードされる前に示されます)。
-
コンマ区切り値を持つ 1 つのフィルターパラメーターを指定または使用するには:
filter=name eq 'Jennifer',name eq 'Jen'
-
複数のフィルターパラメーターを指定して使用するには:
filter = name eq 'Jackson'&filter=message eq 'testing'
検索コンポーネントのデフォルトの実装では、この構文が使用されます。これは、 コミュニティコンポーネントガイドの検索結果ページを開く URL に表示されます。 実験するには、http://localhost:4503/content/community-components/en/search.html を参照してください。
フィルター演算子は次のとおりです。
コンポーネントが配置されているページではなく、URL が Communities コンポーネント(リソース)を参照することが重要です。
- 正しい形式:フォーラムコンポーネント
/content/community-components/en/forum/jcr:content/content/forum.social.json
- 間違った形式:フォーラムページ
/content/community-components/en/forum.social.json
SRP ツール srp-tools
次を含むAdobe Experience Cloud GitHub プロジェクトがあります。
このリポジトリには、SRP のデータを管理するためのツールが含まれています。
現在、任意の SRP からすべての UGC を削除できるサーブレットが 1 つあります。
例えば、ASRP のすべての UGC を削除するには、次のようにします。
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
トラブルシューティング troubleshooting
Solr クエリ solr-query
Solr クエリの問題のトラブルシューティングに役立てるには、のデバッグログを有効にします。
com.adobe.cq.social.srp.impl.SocialSolrConnector
。
実際の Solr クエリは、デバッグログにエンコードされた URL で表示されます。
solr に対するクエリ : sort=timestamp+desc&bl=en&pl=en&start=0&rows=10 &q=%2Btitle_t:(hello)+%2Bprovider_id:\/content/usergenerated/asi/mongo/content/+%2Bresource_type_s:&df=provider_id&trf=verbatim&fq={!cost%3D100}report_suite:mongo
q
パラメーターの値はクエリです。 URL エンコーディングがデコードされると、クエリを Solr Admin Query ツールに渡して、さらにデバッグできるようになります。
関連リソース related-resources
- コミュニティコンテンツストレージ- UGC 共通ストアで使用可能な SRP の選択肢について説明します。
- ストレージリソースプロバイダーの概要– 概要とリポジトリの使用状況の概要。
- SRP による UGC へのアクセス- コーディングガイドライン。
- SocialUtils のリファクタリング- SocialUtils に代わる SRP のユーティリティメソッド。
- 検索と検索結果のコンポーネント- テンプレートへの UGC 検索機能の追加。