検索の基本事項 search-essentials
概要 overview
検索機能は、Adobe Experience Manager(AEM)コミュニティの重要な機能です。 AEM プラットフォーム検索機能に加えて、AEM Communitiesでは、ユーザー生成コンテンツ(UGC)を検索するためのUGC検索APIを提供しています。 UGCは、AEMの他のコンテンツやユーザーデータとは別に入力および保存されるため、独自のプロパティを持ちます。
Communitiesでは、一般的に検索される2つの項目を次に示します。
-
コミュニティメンバーが投稿したコンテンツ
- AEM CommunitiesのUGC検索APIを使用しています。
-
ユーザーとユーザーグループ(ユーザーデータ)
- AEMのプラットフォーム検索機能を使用しています。
UGCを作成または管理するカスタムコンポーネントを作成する開発者は、この節のドキュメントを参照してください。
セキュリティ ノードとシャドウ ノード security-and-shadow-nodes
カスタムコンポーネントの場合は、SocialResourceUtilities メソッドを使用する必要があります。 UGCを作成および検索するユーティリティ メソッドは、必要な シャドウ ノード を確立し、メンバーがリクエストに対する正しい権限を持っていることを確認します。
SRP ユーティリティを通じて管理されないものは、モデレーションに関連するプロパティです。
UGCおよびACL シャドウ ノードへのアクセスに使用されるユーティリティ メソッドについては、SRPおよびUGC Essentialsを参照してください。
UGC検索API ugc-search-api
UGC共通ストア は、様々なストレージリソースプロバイダー(SRP)のいずれかによって提供され、それぞれが異なるネイティブクエリ言語を持っている可能性があります。 したがって、選択したSRPに関係なく、カスタムコードでは、選択したSRPに適したクエリ言語を呼び出すUGC API パッケージ (com.adobe.cq.social.ugc.api)のメソッドを使用する必要があります。
ASRP Searches asrp-searches
ASRPの場合、UGCはAdobe クラウドに保存されます。 UGCはCRXでは表示されませんが、 モデレーション はオーサー環境とパブリッシュ環境の両方から利用できます。 UGC検索APIの使用は、他のSRPと同じようにASRPで機能します。
現在、ASRP検索を管理するためのツールは存在しません。
検索可能なカスタムプロパティを作成する場合は、の命名要件に準拠する必要があります。
MSRP検索 msrp-searches
MSRPの場合、UGCは検索にSolrを使用するように設定されたMongoDBに保存されます。 UGCはCRXでは表示されませんが、 モデレーション はオーサー環境とパブリッシュ環境の両方から利用できます。
MSRPとSolrについて:
- AEM プラットフォーム用の埋め込みSolrは、MSRPには使用されません。
- AEM プラットフォームにリモート Solrを使用している場合は、MSRPと共有される可能性がありますが、異なるコレクションを使用する必要があります。
- Solrは、標準検索または多言語検索(MLS)用に設定できます。
- 設定の詳細については、MSRPのSolr設定を参照してください。
カスタム検索機能では、UGC検索APIを使用する必要があります。
検索可能なカスタムプロパティを作成する場合は、の命名要件に準拠する必要があります。
JSRP検索 jsrp-searches
JSRPの場合、UGCはOakに保存され、入力されたAEM オーサーインスタンスまたはパブリッシュインスタンスのリポジトリでのみ表示されます。
UGCは通常、パブリッシュ環境で入力されるので、マルチパブリッシャーの実稼動システムの場合は、入力されたコンテンツがすべてのパブリッシャーから表示されるように、パブリッシュファームではなく パブリッシュクラスターを設定する必要があります。
JSRPの場合、パブリッシュ環境で入力されたUGCは、オーサー環境では表示されません。 したがって、すべての モデレーション タスクはパブリッシュ環境で実行されます。
カスタム検索機能では、UGC検索APIを使用する必要があります。
Oak インデックス作成 oak-indexing
Oak インデックスは、AEM プラットフォーム検索用に自動的に作成されるわけではありませんが、AEM 6.2以降では、AEM Communitiesに追加され、パフォーマンスが向上し、UGC検索結果を表示する際のページネーションのサポートが提供されています。
カスタムプロパティを使用しており、検索が遅い場合は、カスタムプロパティのパフォーマンスを高めるために、追加のインデックスを作成する必要があります。 ポータビリティを維持するには、検索可能なカスタムプロパティを作成する場合は、の命名要件に従ってください。
既存のインデックスを変更したり、カスタムインデックスを作成したりするには、Oak クエリとインデックス作成を参照してください。
Oak Index Managerは、ACS AEM Commonsから入手できます。 これには次の機能があります。
- 既存のインデックスのビュー。
- インデックス再作成を開始する機能。
CRXDE Liteの既存のOak インデックスを表示するには、次の場所に移動します。
/oak:index/socialLucene
インデックス付き検索プロパティ indexed-search-properties
デフォルトの検索プロパティ default-search-properties
次に、様々なコミュニティ機能に使用される検索可能なプロパティの一部を示します。
カスタムプロパティの命名 naming-of-custom-properties
カスタムプロパティを追加する場合、これらのプロパティをUGC検索APIで作成された並べ替えや検索に表示するには、プロパティ名にサフィックスを追加する必要があります。
接尾辞は、スキーマを使用するクエリ言語に対して使用されます。
- これは、プロパティを検索可能として識別します。
- データタイプを識別します。
Solrは、スキーマを使用するクエリ言語の例です。
メモ:
-
テキストはトークン化された文字列です。文字列はトークン化されていません。 テキストを使用すると、あいまいな(このようなものが多い)検索を実行できます。
-
複数値の型の場合は、次のように接尾辞に「s」を追加します。
viewDate_dt:単一の日付プロパティviewDates_dts:日付プロパティのリスト
フィルター filters
コメントシステム を含むコンポーネントは、エンドポイントに加えてフィルターパラメーターをサポートします。
ANDおよびOR ロジックのフィルター構文は、次のように表されます(URL エンコード前に示します)。
-
ORを指定するには、コンマ区切りの値を持つ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 クエリに関する問題のトラブルシューティングを支援するには、のDEBUG ログを有効にします
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管理者クエリツールに渡して、さらにデバッグを行うことができます。
関連リソース related-resources
- コミュニティコンテンツストレージ - UGC共通ストアで利用可能なSRPの選択肢について説明します。
- ストレージリソースプロバイダーの概要 – 概要とリポジトリの使用状況の概要。
- SRPを使用したUGCへのアクセス - コーディング ガイドライン。
- SocialUtils リファクタリング - SocialUtilsを置き換えるSRPのユーティリティ メソッド。
- 検索および検索結果コンポーネント - UGC検索機能をテンプレートに追加します。