단순 검색 구현 안내서 simple-search-implementation-guide
단순 검색 구현은 Adobe Summit 랩 AEM 검색 Demystified 의 자료입니다. 이 페이지에는 이 실습의 자료가 포함되어 있습니다. 실습 가이드 투어는 이 페이지의 프레젠테이션 섹션에서 실습 통합 문서를 참조하십시오.
프레젠테이션 자료 bookmarks
책갈피 bookmarks-1
도구 tools
- 인덱스 관리자
- 쿼리 설명
- CRXDE Lite > /oak:index/cqPageLucene
- CRX 패키지 관리자
- QueryBuilder 디버거
- Oak 인덱스 정의 생성기
챕터 chapters
아래 챕터 링크는 초기 패키지가http://localhost:4502
에 AEM 작성자에 설치되어 있다고 가정합니다.
패키지 packages
초기 패키지 initial-packages
챕터 패키지 chapter-packages
참조된 자료 reference-materials
수정 및 추가 작업 corrections-and-follow-up
랩 토론의 수정 및 설명, 참석자의 후속 질문에 대한 답변.
-
다시 인덱싱을 중지하는 방법
AEM 웹 콘솔 > JMX을 통해 사용할 수 있는 IndexStats MBean을 통해 다시 인덱싱을 중지할 수 있습니다.
-
- 다시 인덱싱을 중단하려면
abortAndPause()
을(를) 실행하십시오.resume()
이(가) 호출될 때까지 색인을 추가 다시 색인화하도록 잠급니다. resume()
을(를) 실행하면 인덱싱 프로세스가 다시 시작됩니다.
- 다시 인덱싱을 중단하려면
-
설명서: https://jackrabbit.apache.org/oak/docs/query/indexing.html#async-index-mbean
-
-
oak 인덱스가 여러 테넌트를 지원하는 방법은 무엇입니까?
Oak은 콘텐츠 트리 전체에 인덱스 배치를 지원하며 이러한 인덱스는 해당 하위 트리 내에서만 인덱싱됩니다. 예를 들어
/content/site-a/oak:index/cqPageLucene
은(는)/content/site-a
. 에서만 콘텐츠를 색인화하기 위해 만들 수 있습니다.이와 동등한 방법은
/oak:index
아래 인덱스에서includePaths
및queryPaths
속성을 사용하는 것입니다. 예:/oak:index/siteAcqPageLucene@includePaths=/content/site-a
/oak:index/siteAcqPageLucene@queryPaths=/content/site-a
이 접근 방식의 고려 사항은 다음과 같습니다.
- 쿼리는 인덱스의 쿼리 경로 범위와 동일한 경로 제한을 지정하거나 해당 인덱스의 하위 항목이어야 합니다.
- 범위가 넓은 인덱스(예:
/oak:index/cqPageLucene
)도 데이터를 인덱싱하므로 중복 수집 및 디스크 사용 비용이 발생합니다. - 중복 구성 관리(예: 동일한 쿼리 세트를 충족해야 하는 경우 여러 테넌트 인덱스에 동일한 indexRules 추가)
- 이 방법은 AEM Author에서와 같이 사용자 지정 사이트 검색을 위해 AEM Publish 계층에서 가장 잘 제공되며, 쿼리는 서로 다른 테넌트에 대한 콘텐츠 트리 높은 곳에서 실행되는 것이 일반적입니다(예: OmniSearch를 통해). 서로 다른 색인 정의로 인해 경로 제한에만 따라 다른 동작이 발생할 수 있습니다.
-
사용 가능한 모든 분석기 목록은 어디에 있습니까?
Oak은 AEM에서 사용하기 위해 lucene 제공 분석기 구성 요소 집합을 노출합니다.
-
같은 쿼리에서 페이지와 Assets을 검색하는 방법
AEM 6.3의 새로운 기능은 제공된 동일한 쿼리에서 여러 노드 유형을 쿼리하는 기능입니다. 다음 QueryBuilder 쿼리입니다. 각 "하위 쿼리"는 자체 인덱스로 확인할 수 있으므로 이 예제에서는
cq:Page
하위 쿼리가/oak:index/cqPageLucene
(으)로 확인되고dam:Asset
하위 쿼리가/oak:index/damAssetLucene
(으)로 확인됩니다.code language-plain group.p.or=true group.1_group.type=cq:Page # add all page restrictions to this group group.2_group.type=dam:Asset # add all asset restrictions to this group
다음 쿼리 및 쿼리 계획을 생성합니다.
code language-plain QUERY:(//element(*, cq:Page) | //element(*, dam:Asset)) PLAN: [cq:Page] as [a] /* lucene:cqPageLucene(/oak:index/cqPageLucene) *:* */ union [dam:Asset] as [a] /* lucene:damAssetLucene(/oak:index/damAssetLucene) *:* */
QueryBuilder Debugger 및 AEM Chrome 플러그인을 통해 쿼리 및 결과를 탐색합니다.
-
동일한 쿼리에서 여러 경로를 검색하는 방법
AEM 6.3의 새로운 기능은 제공된 동일한 쿼리에서 여러 경로를 쿼리하는 기능입니다. 다음 QueryBuilder 쿼리입니다. 각 "하위 쿼리"는 자체 색인으로 확인될 수 있습니다.
code language-plain group.p.or=true group.1_group.type=cq:Page group.1_group.path=/content/docs/en/6-2 # add all page restrictions to this group group.2_group.type=cq:Page group.2_group.path=/content/docs/en/6-3 # add all asset restrictions to this group
결과: 다음 쿼리 및 쿼리 계획
code language-plain QUERY: (/jcr:root/content/docs/en/_x0036_-2//element(*, cq:Page) | /jcr:root/content/docs/en/_x0036_-3//element(*, cq:Page)) PLAN: [cq:Page] as [a] /* traverse "/content/docs/en/6-2//*" where isdescendantnode([a], [/content/docs/en/6-2]) */ union [cq:Page] as [a] /* traverse "/content/docs/en/6-3//*" where isdescendantnode([a], [/content/docs/en/6-3]) */
QueryBuilder Debugger 및 AEM Chrome 플러그인을 통해 쿼리 및 결과를 탐색합니다.