검색 기능은 AEM Communities의 필수 기능입니다. AEM Communities은 AEM 플랫폼 검색 기능 외에도 사용자가 생성한 컨텐츠(UGC)를 검색할 목적으로 UGC 검색 API를 제공합니다. UGC에는 다른 AEM 컨텐츠 및 사용자 데이터와 별도로 입력되어 저장되는 고유한 속성이 있습니다.
Communities에서 일반적으로 검색된 두 가지는 다음과 같습니다.
커뮤니티 구성원이 게시한 컨텐츠
사용자 및 사용자 그룹(사용자 데이터)
UGC를 만들거나 관리하는 사용자 지정 구성 요소를 만드는 개발자에게는 이 설명서의 섹션이 적합합니다.
사용자 지정 구성 요소의 경우 SocialResourceUtilities 메서드를 사용해야 합니다. UGC를 만들고 검색하는 유틸리티 메서드는 필요한 섀도 노드를 설정하고 멤버에 요청에 대한 올바른 권한이 있는지 확인합니다.
SRP 유틸리티를 통해 관리되지 않는 속성은 조정과 관련된 속성입니다.
UGC 및 ACL 섀도 노드에 액세스하는 데 사용되는 유틸리티 메서드에 대한 자세한 내용은 SRP 및 UGC Essentials를 참조하십시오.
UGC 공용 스토어는 각각 다른 기본 쿼리 언어를 가질 수 있는 다양한 SRP(저장소 리소스 제공자) 중 하나에 의해 제공됩니다. 따라서 선택한 SRP에 관계없이 사용자 지정 코드는 선택한 SRP에 적합한 쿼리 언어를 호출하는 UGC API 패키지(com.adobe.cq.social.ugc.api)의 메서드를 사용해야 합니다.
ASRP의 경우 UGC가 Adobe 클라우드에 저장됩니다. UGC는 CRX에 표시되지 않지만 작성자 및 게시 환경 모두에서 moderation을 사용할 수 있습니다. UGC 검색 API의 사용은 다른 SRP와 동일하게 ASRP에 대해 작동합니다.
현재 ASRP 검색을 관리하기 위한 도구가 없습니다.
검색 가능한 사용자 지정 속성을 만들 때 이름 지정 요구 사항을 따라야 합니다.
MSRP의 경우, UGC는 Solr를 사용하여 검색하도록 구성된 MongoDB에 저장됩니다. UGC는 CRX에 표시되지 않지만 작성자 및 게시 환경 모두에서 moderation을 사용할 수 있습니다.
MSRP 및 Solr 관련 정보:
사용자 지정 검색 기능은 UGC 검색 API를 사용해야 합니다.
검색 가능한 사용자 지정 속성을 만들 때 이름 지정 요구 사항을 따라야 합니다.
JSRP의 경우, UGC는 Oak에 저장되며, 입력된 AEM 작성자 또는 게시 인스턴스의 저장소에만 표시됩니다.
UGC는 일반적으로 게시 환경에 입력되기 때문에 다중 게시자 프로덕션 시스템의 경우 모든 게시자에서 볼 수 있도록 게시 팜이 아니라 게시 클러스터를 구성해야 합니다.
JSRP의 경우, 게시 환경에 입력한 UGC는 작성 환경에 표시되지 않습니다. 따라서 모든 moderation 작업이 게시 환경에서 발생합니다.
사용자 지정 검색 기능은 UGC 검색 API를 사용해야 합니다.
AEM 6.2부터는 AEM 플랫폼 검색에 대해 Oak 인덱스가 자동으로 만들어지지 않지만 6.2부터는 성능을 개선하고 UGC 검색 결과를 표시할 때 페이지 매김을 지원하기 위해 AEM Communities에 추가되었습니다.
사용자 지정 속성을 사용 중이고 검색이 느린 경우 사용자 지정 속성에 대해 추가 색인을 만들어 성능을 더 향상해야 합니다. 휴대성을 유지하려면 검색 가능한 사용자 지정 속성을 만들 때 이름 지정 요구 사항을 따라야 합니다.
기존 색인을 수정하거나 사용자 지정 색인을 만들려면 Oak 쿼리 및 색인 지정을 참조하십시오.
Oak 색인 관리자는 ACS AEM Commons에서 사용할 수 있습니다. 다음을 제공합니다.
CRXDE Lite에서 기존 Oak 색인을 보려면 위치가 다음과 같습니다.
/oak:index/socialLucene
다음은 다양한 커뮤니티 기능에 사용되는 검색 가능한 속성 중 일부입니다.
속성 | 데이터 유형 |
---|---|
isFlaged | 부울 |
isSpam | 부울 |
읽기 | 부울 |
영향력 | 부울 |
첨부 파일 | 부울 |
감정 | 긴 |
플래그 지정 | 부울 |
추가됨 | 날짜 |
modifiedDate | 날짜 |
상태 | String |
userIdentifier | 문자열 |
답글 | 긴 |
jcr:title | 문자열 |
jcr:description | 문자열 |
sling:resourceType | 문자열 |
allowThreadedReply | 부울 |
isDraft | 부울 |
publishDate | 날짜 |
publishJobId | 문자열 |
답변됨 | 부울 |
초승자 | 부울 |
태그 | 문자열 |
cq:태그 | 문자열 |
author_display_name | 문자열 |
location_t | 문자열 |
parentPath | 문자열 |
parentTitle | 문자열 |
사용자 지정 속성을 추가할 때 이러한 속성을 UGC 검색 API로 작성된 정렬 및 검색에 표시하려면 속성 이름에 접미사를 추가해야 하는 *필수 필드입니다.
접미사는 스키마를 사용하는 쿼리 언어용입니다.
솔러는 스키마를 사용하는 쿼리 언어의 예입니다.
접미어 | 데이터 유형 |
---|---|
_b | 부울 |
_dt | 달력 |
_d | 더블 |
_tl | 긴 |
_s | 문자열 |
_t | 텍스트 |
메모:
텍스트 문자열은 토큰화된 문자열이며 문자열이 아닙니다. 퍼지 검색에 Text을 사용합니다(이와 같은 ).
여러 값을 갖는 유형의 경우 접미사에 's'를 추가합니다(예:
viewDate_dt
:단일 날짜 속성viewDates_dts
:날짜 속성 목록주석 시스템을 포함하는 구성 요소는 종단점에 추가된 필터 매개 변수를 지원합니다.
AND 및 OR 로직의 필터 구문은 다음과 같이 표시됩니다(URL로 인코딩되기 전에 표시됨).
OR를 지정하려면 쉼표로 구분된 값이 있는 필터 매개 변수 하나를 사용합니다.
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 | 유사 일치 |
URL은 구성 요소가 배치된 페이지가 아니라 커뮤니티 구성 요소(리소스)를 참조하는 것이 중요합니다.
/content/community-components/en/forum/jcr:content/content/forum.social.json
/content/community-components/en/forum.social.json
다음을 포함하는 Adobe Marketing Cloud GitHub 프로젝트가 있습니다.
이 저장소에는 SRP의 데이터를 관리하기 위한 도구가 포함되어 있습니다.
현재 SRP에서 모든 UGC를 삭제하는 기능을 제공하는 서블릿이 하나 있습니다.
예를 들어 ASRP에서 모든 UGC를 삭제하려면 다음을 수행합니다.
curl -X POST http://localhost:4502/services/social/srp/cleanup?path=/content/usergenerated/asi/cloud -uadmin:admin
Solr 쿼리 문제를 해결하려면 DEBUG 로깅을 사용하십시오
com.adobe.cq.social.srp.impl.SocialSolrConnector
.
실제 Solr 쿼리는 디버그 로그에 인코딩된 URL로 표시됩니다.
솔러에 대한 쿼리: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 도구로 전달할 수 있습니다.