現在表示中:

概要

検索機能は AEM Communities の基本機能です。AEM プラットフォーム検索機能に加え、AEM Communities には、ユーザー生成コンテンツ(UGC)を検索するための UGC 検索 API が用意されています。UGC は、その他の AEM コンテンツおよびユーザーデータとは別に入力および格納される一意のプロパティを持ちます。

コミュニティで一般に検索対象となるのは次の 2 つです。

  • コミュニティメンバーが投稿したコンテンツ
    • AEM Communities の UGC 検索 API を使用します。
  • ユーザーおよびユーザーグループ(ユーザーデータ)
    • AEM プラットフォーム検索機能を使用します。

ドキュメントのこの節は、UGC を作成または管理するためのカスタムコンポーネントの作成を担当する開発者を対象としています。

セキュリティおよびシャドウノード

カスタムコンポーネントの場合、SocialResourceUtilities メソッドを使用する必要があります。UGC を作成および検索するためのユーティリティメソッドを使用すると、必要なシャドウノードを確立し、メンバーが要求に対して正しい権限を持っていることを確認できます。

モデレート関連のプロパティについては、SRP ユーティリティでは管理しません。

UGC および ACL シャドウノードにアクセスするために使用するユーティリティメソッドについては、SRP と UGC の基本事項を参照してください。

UGC 検索 API

UGC 共通ストアは、それぞれ異なるネイティブクエリー言語を使用するさまざまなストレージリソースプロバイダー(SRP)の 1 社から提供されます。そのため、どの SRP が選択されるかに関係なく、カスタムコードでは、UGC API パッケージcom.adobe.cq.social.ugc.api)内のメソッドを使用して、選択された SRP に合ったクエリー言語が呼び出されるようにする必要があります。

ASRP 検索

ASRP の場合、UGC は Adobe クラウドに格納されます。UGC は CRX には表示されませんが、オーサー環境とパブリッシュ環境の両方からモデレート可能です。ASRP に対する UGC 検索 API の使用方法はその他の SRP の場合と同じです。

ASRP 検索を管理するためのツールは現在存在しません。

検索可能なカスタムプロパティを作成する場合、命名要件に準拠する必要があります。

MSRP 検索

MSRP の場合、UGC は検索に Solr を使用するように設定された MongoDB に格納されます。UGC は CRX には表示されませんが、オーサー環境とパブリッシュ環境の両方からモデレート可能です。

MSRP および Solr については、次の点に留意してください。

  • AEM プラットフォームに埋め込まれた Solr は MSRP には使用されません。
  • AEM プラットフォームにリモート Solr を使用している場合は、その Solr を MSRP と共有できますが、それぞれ異なるコレクションを使用する必要があります。
  • Solr は、標準検索用としても、多言語検索(MLS)用としても設定できます。
  • 設定について詳しくは、MSRP 用の Solr 設定を参照してください。

カスタム検索機能では、UGC 検索 API を使用する必要があります。

検索可能なカスタムプロパティを作成する場合、命名要件に準拠する必要があります。

JSRP 検索

JSRP の場合、UGC は Oak に格納され、それが入力された AEM オーサーインスタンスまたはパブリッシュインスタンスのリポジトリにのみ表示されます。

UGC は一般にパブリッシュ環境で入力されるので、複数の公開者が存在する実稼動システムでは、パブリッシュファームではなく、パブリッシュクラスターの設定を通して、入力されたコンテンツがすべての公開者から表示できるようにする必要があります。

JSRP の場合、パブリッシュ環境で入力された UGC はオーサー環境には表示されません。したがって、モデレートタスクは常にパブリッシュ環境で実行されます。

カスタム検索機能では、UGC 検索 API を使用する必要があります。

Oak インデックスの作成

AEM プラットフォーム検索用に Oak インデックスが自動的に作成されることはありませんが、AEM 6.2 以降では、AEM Communities のパフォーマンスを向上させ、UGC 検索結果を表示する際のページネーションに対応する目的で、インデックスが追加されています。

カスタムプロパティを使用していて、検索速度が遅い場合は、カスタムプロパティに対して追加のインデックスを作成し、パフォーマンスを向上させる必要があります。ポータビリティを維持するために、検索可能なカスタムプロパティを作成する際には命名要件に準拠してください。

既存のインデックスを変更したり、カスタムインデックスを作成したりする方法については、Oak クエリーとインデックス作成を参照してください。

ACS AEM Commons には Oak インデックスマネージャーが用意されています。これには次の機能があります。

  • 既存のインデックスの表示
  • インデックス再作成の開始

CRXDE Lite で既存の Oak インデックスを表示するには、次の場所に移動します。

  • /oak:index/socialLucene

インデックス付き検索のプロパティ

デフォルトの検索プロパティ

さまざまなコミュニティ機能に使用される検索可能なプロパティの一部を次に示します。

プロパティ データタイプ
isFlagged ブール値
isSpam ブール値
read ブール値
influence ブール値
attachments ブール値
sentiment 長整数
flagged ブール値
added 日付
modifiedDate 日付
state 文字列
userIdentifier 文字列
replies 長整数
jcr:title 文字列
jcr:description 文字列
sling:resourceType 文字列
allowThreadedReply ブール値
isDraft ブール値
publishDate 日付
publishJobId 文字列
answered ブール値
chosenanswered ブール値
tag 文字列
cq:Tag 文字列
author_display_name 文字列
location_t 文字列
parentPath 文字列
parentTitle 文字列

カスタムプロパティの命名

カスタムプロパティを追加する場合、UGC 検索 API を使用して作成されたソートおよび検索でそれらのプロパティが認識されるようにするには、プロパティ名にサフィックスを追加する必要があります

サフィックスは、次のスキーマを使用するクエリー言語で必要です。

  • プロパティを検索可能として識別
  • データタイプを識別

Solr は、スキーマを使用するクエリー言語の一例です。

サフィックス データタイプ
_b ブール値
_dt カレンダー
_d 倍精度浮動小数点
_tl 長整数
_s 文字列
_t テキスト

注意:

  • テキストはトークン化された文字列であり、実際の文字列とは異なります。ファジー(類似)検索にはテキストを使用します。
  • 複数の値を持つタイプの場合、次のようにサフィックスに「s」を追加します。
    • viewDate_dt:単一日付プロパティ
    • viewDates_dts:日付リストプロパティ

フィルター

コメントシステムを備えたコンポーネントでは、エンドポイントへのフィルターパラメーターの追加がサポートされています。

AND および OR ロジックのフィルター構文は次のようになります(URL エンコード処理前)。

  • OR を指定するには、1 つのフィルターパラメーターを使用し、値をカンマで区切って指定します。
    • filter=name eq 'Jennifer',name eq 'Jen'
  • AND を指定するには、複数のフィルターパラメーターを使用します。
    • filter = name eq 'Jackson'&filter=message eq 'testing'

コミュニティコンポーネントガイドで「検索結果」ページを開く際に使用される URL に見られるように、検索コンポーネントのデフォルト実装ではこの構文が使用されます。http://localhost:4503/content/community-components/en/search.html を参照して、試してみてください。

フィルター演算子は次のとおりです。

EQ 次と等しい
NE 次と等しくない
LT 次よりも小さい
LTE 次よりも小さいか等しい
GE 次よりも大きい
GTE 次よりも大きいか等しい
LIKE ファジーマッチ

SRP ツール

次のものをまとめた Adobe Marketing Cloud GitHub プロジェクトが公開されています。

AEM Communities SRP ツール

このリポジトリには、SRP のデータを管理するためのツールが格納されています。

現在、任意の SRP からすべての UGC を削除できるサーブレットが 1 つ用意されています。

次に、ASRP からすべての UGC を削除する場合の例を示します。

curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin

関連リソース

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー