단순 검색 구현 안내서 simple-search-implementation-guide

단순 검색 구현은 Adobe Summit 랩 AEM 검색 Demystified. 이 페이지에는 이 실습의 자료가 포함되어 있습니다. 실습 가이드 투어는 이 페이지의 프레젠테이션 섹션에서 실습 통합 문서를 참조하십시오.

검색 아키텍처 개요

프레젠테이션 자료 bookmarks

책갈피 bookmarks-1

도구 tools

챕터 chapters

아래 챕터 링크에서는 초기 패키지 다음 위치에서 AEM 작성자에 설치됩니다.http://localhost:4502

패키지 packages

초기 패키지 initial-packages

챕터 패키지 chapter-packages

참조된 자료 reference-materials

수정 및 추가 작업 corrections-and-follow-up

랩 토론의 수정 및 설명, 참석자의 후속 질문에 대한 답변.

  1. 색인 재지정을 중지하는 방법

    리인덱싱은 를 통해 사용 가능한 IndexStats MBean을 통해 중단할 수 있습니다. AEM 웹 콘솔 > JMX

  2. Oak 색인이 여러 테넌트를 지원하는 방법은 무엇입니까?

    Oak는 콘텐츠 트리를 통해 색인 배치를 지원하며 이러한 색인은 해당 하위 트리 내에서만 색인화됩니다. 예 /content/site-a/oak:index/cqPageLucene 을(를) 만들어 다음에만 콘텐츠를 색인화할 수 있습니다. /content/site-a.

    이와 동등한 접근 방식은 includePathsqueryPaths 아래의 인덱스에 대한 속성 /oak:index. 예:

    • /oak:index/siteAcqPageLucene@includePaths=/content/site-a
    • /oak:index/siteAcqPageLucene@queryPaths=/content/site-a

    이 접근 방식의 고려 사항은 다음과 같습니다.

    • 쿼리는 인덱스의 쿼리 경로 범위와 동일한 경로 제한을 지정하거나 해당 인덱스의 하위 항목이어야 합니다.
    • 범위가 넓은 색인(예: /oak:index/cqPageLucene)는 또한 데이터를 인덱싱하므로 중복 수집 및 디스크 사용 비용이 발생합니다.
    • 중복 구성 관리(예: 동일한 쿼리 세트를 충족해야 하는 경우 여러 테넌트 인덱스에 동일한 indexRules 추가)
    • 이 방법은 AEM Author에서와 같이 사용자 지정 사이트 검색을 위해 AEM Publish 계층에서 가장 잘 제공되며, 일반적으로 쿼리는 서로 다른 테넌트에 대한 콘텐츠 트리 높은 곳에서 실행됩니다(예: OmniSearch를 통해). 서로 다른 색인 정의는 경로 제한만 기준으로 다른 동작을 초래할 수 있습니다.
  3. 사용 가능한 모든 분석기 목록은 어디에 있습니까?

    Oak는 AEM에서 사용하기 위해 lucene 제공 분석기 구성 요소 집합을 노출합니다.

  4. 동일한 쿼리에서 페이지 및 에셋을 검색하는 방법

    AEM 6.3의 새로운 기능은 제공된 동일한 쿼리에서 여러 노드 유형을 쿼리하는 기능입니다. 다음 QueryBuilder 쿼리입니다. 각 "하위 쿼리"는 자체 인덱스로 확인할 수 있으므로 이 예제에서는 cq:Page 하위 쿼리가 다음으로 확인됨 /oak:index/cqPageLucenedam: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 디버거AEM Chrome 플러그인.

  5. 동일한 쿼리에서 여러 경로를 검색하는 방법

    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 디버거AEM Chrome 플러그인.

recommendation-more-help
bb44cebf-d964-4e3c-b64e-ce882243fe4d