영향을 받습니까?

다른 전체 텍스트 인덱스로 쿼리를 처리할 수 없는 경우 일반 Lucene 인덱스가 현재 대체 항목으로 사용됩니다. 더 이상 사용되지 않는 이 색인을 사용하면 다음과 유사한 메시지가 WARN 수준에서 기록됩니다.

org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex This index is deprecated: /oak:index/lucene-2; it is used for query Filter(query=select [jcr:path], [jcr:score], * from [nt:base] as a where contains(*, 'test') /* xpath: //*[jcr:contains(.,"test")] */ fullText="test", path=*). Change the query or the index definitions.

경우에 따라 Oak에서 다른 전체 텍스트 인덱스(예: /oak:index/pathreference)를 사용하여 전체 텍스트 쿼리를 지원하려고 시도할 수 있지만 쿼리 문자열이 인덱스 정의의 정규 표현식과 일치하지 않으면 메시지가 WARN 수준에서 기록되고 쿼리가 결과를 반환하지 않을 수 있습니다.

org.apache.jackrabbit.oak.query.QueryImpl Potentially improper use of index /oak:index/pathReference with queryFilterRegex (["']|^)/ to search for value "test"

일반 Lucene 색인이 제거되면, 전체 텍스트 쿼리에서 적절한 색인 정의를 찾을 수 없는 경우 아래에 표시된 것처럼 메시지가 경고 수준으로 기록됩니다.

org.apache.jackrabbit.oak.query.QueryImpl Fulltext query without index for filter Filter(query=select [jcr:path], [jcr:score], * from [nt:base] as a where contains(*, 'test') /* xpath: //*[jcr:contains(.,"test")] */ fullText="test", path=*); no results are returned
IMPORTANT
고객 작업 필요
앞서 언급한 경고 메시지가 기록되는 경우 쿼리를 다시 작업하여 다른 전체 텍스트 인덱스를 사용하거나 새 인덱스를 제공하여 쿼리를 지원해야 할 수 있습니다.
표시되는 종속성 유형과 이를 해결하는 방법에 대한 자세한 내용은 다음 섹션에 나와 있습니다.

일반 Lucene 인덱스에 대한 잠재적 종속성

애플리케이션 및 AEM 설치가 작성자 및 게시 인스턴스 모두에서 일반 Lucene 인덱스에 종속될 수 있는 몇 가지 영역이 있습니다.

게시 인스턴스

사용자 정의 응용 프로그램 쿼리

게시 인스턴스에서 일반 Lucene 인덱스를 사용하는 가장 일반적인 쿼리 소스는 사용자 지정 애플리케이션 쿼리입니다.

가장 간단한 경우는 다음과 같이 노드 유형이 지정되지 않아 명시적으로 지정된 nt:base 또는 nt:base을(를) 의미하는 쿼리일 수 있습니다.

/jcr:root/content/mysite//*[jcr:contains(., 'search term')]
/jcr:root/content/mysite//element(*, nt:base)[jcr:contains(., 'search term')]
IMPORTANT
고객 작업 필요
앞서 언급한 쿼리는 다음 섹션에 설명된 대로 적절한 노드 유형을 사용하도록 수정해야 합니다.

예를 들어 쿼리는 cq:Page node 아래에 있는 집계 또는 페이지와 일치하는 결과를 반환하도록 수정할 수 있습니다. 따라서 쿼리는 다음과 같이 될 수 있습니다.

/jcr:root/content/mysite//element(*, cq:Page)[jcr:contains(., 'search term')]

다른 경우, 쿼리는 노드 유형을 지정할 수 있지만 다음과 같은 다른 전체 텍스트 인덱스로 처리할 수 없는 전체 텍스트 제한을 포함할 수 있습니다.

/jcr:root/content/dam//element(*, dam:Asset)[jcr:contains(jcr:content/metadata/@cq:tags, 'NewsTopics:cateogries/domestic'))]

이 경우 쿼리에 dam:Asset 노드 유형이 있지만 상대 jcr:content/metadata/@cq:tags 속성에 대한 전체 텍스트 제한이 있습니다.

이 속성은 dam:Asset 노드 유형에 대한 쿼리에 가장 일반적으로 사용되는 전체 텍스트 인덱스인 damAssetLucene 인덱스에서 분석된 것으로 표시되지 않습니다. 따라서 이 색인은 이 쿼리에 사용할 수 없습니다.

따라서 쿼리는 포함된 모든 속성이 /oak:index/lucene-2/indexRules/nt:base/properties/prop에서 와일드카드 일치 항목으로 분석된 것으로 표시되는 일반 전체 텍스트 인덱스로 대체됩니다.

IMPORTANT
고객 작업 필요
damAssetLucene 인덱스의 사용자 지정 버전에서 분석된 대로 jcr:content/metadata/@cq:tags 속성을 표시하면 이 쿼리가 이 인덱스로 처리되고 WARN이 기록되지 않습니다.

작성자 인스턴스

고객 애플리케이션 서블릿, OSGi 구성 요소 및 렌더링 스크립트의 쿼리 외에도 몇 가지 작성자별 일반 Lucene 인덱스 사용이 있을 수 있습니다.

지금까지 일반 Lucene 색인은 참조 검색을 지원하거나 다른 콘텐츠 경로에 대한 참조가 포함된 콘텐츠를 검색하는 데 사용되었습니다. 새 /oak:index/pathreference 인덱스를 사용하도록 이러한 쿼리가 이미 업데이트되었을 것입니다.

AEM에는 다른 AEM 경로를 선택할 수 있는 브라우저/선택기를 제공하는 Sling 리소스 유형이 granite/ui/components/coral/foundation/form/pathfield인 사용자 지정 대화 상자 구성 요소가 포함되어 있습니다. 콘텐츠 구조에 사용자 지정 pickerSrc 속성이 정의되지 않은 경우 사용되는 기본 경로 필드 선택기는 팝업 대화 상자에서 검색 창을 렌더링합니다.

nodeTypes 속성을 사용하여 검색할 노드 형식을 지정할 수 있습니다.

현재 nodeTypes 속성이 없으면 기본 검색 쿼리에서 nt:base 노드 형식을 사용하므로 일반적으로 다음과 유사한 WARN 메시지를 로깅하는 일반 Lucene 인덱스를 사용할 수 있습니다.

20.01.2022 18:56:06.412 *WARN* [127.0.0.1 [1642704966377] POST /mnt/overlay/granite/ui/content/coral/foundation/form/pathfield/picker.result.single.html HTTP/1.1] org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex This index is deprecated: /oak:index/lucene-2; it is used for query Filter(query=select [jcr:path], [jcr:score], * from [nt:base] as a where contains(*, 'test') and isdescendantnode(a, '/content') /* xpath: /jcr:root/content//element(*, nt:base)[(jcr:contains(., 'test'))] order by @jcr:score descending */ fullText="test", path=/content//*). Change the query or the index definitions.

일반 Lucene 인덱스를 제거하기 전에 nodeTypes 속성을 제공하지 않는 기본 선택기를 사용하는 구성 요소에 대해 검색 상자가 숨겨지도록 pathfield 구성 요소가 업데이트됩니다.

검색이 있는 경로 필드 선택기검색이 없는 경로 필드 선택기
검색이 있는 경로 필드 선택기 검색이 없는 경로 필드 선택기
IMPORTANT
고객 작업 필요
고객이 경로 필드 선택기 내에서 검색 기능을 유지하려면 쿼리할 노드 유형을 나열하는 nodeTypes 속성을 제공해야 합니다. String 속성에서 쉼표로 구분된 노드 형식 목록으로 지정할 수 있습니다. 검색이 필요하지 않은 경우 고객의 조치가 필요하지 않습니다.
NOTE
콘텐츠 조각 모델 편집기에서 Sling 리소스 형식이 dam/cfm/models/editor/components/contentreference인 특수 경로 필드를 사용합니다.
  • 현재는 이러한 작업에서 노드 유형을 지정하지 않고 쿼리를 수행하므로 일반 Lucene 인덱스 사용으로 인해 WARN이 기록됩니다.
  • 이러한 구성 요소의 인스턴스는 추가 고객 조치 없이 곧 자동으로 cq:Pagedam:Asset 노드 유형을 사용하는 것으로 설정됩니다.
  • 이러한 기본 노드 형식을 재정의하기 위해 nodeTypes 속성을 추가할 수 있습니다.

일반 Lucene 제거 타임라인

Adobe은 일반적인 Lucene 인덱스를 제거하는 2단계 접근 방식을 취합니다.

  • 단계 1(2022년 1월 31일 시작 예정): 더 이상 새 AEM as a Cloud Service 환경에서 /oak:index/lucene-*을(를) 만들지 않습니다.
  • 2단계(2022년 3월 31일 시작 예정): 기존 AEM as a Cloud Service 환경에서 /oak:index/lucene-* 인덱스를 제거하십시오.

Adobe은 위에 언급된 로그 메시지를 모니터링하고 일반 Lucene 색인에 계속 의존하는 고객에게 문의하려고 시도합니다.

단기적인 완화 차원에서 Adobe은 고객 시스템에 사용자 정의 인덱스 정의를 직접 추가하여 필요에 따라 일반 Lucene 인덱스를 제거하여 발생하는 기능이나 성능 문제를 방지합니다.

이러한 경우 고객에게 업데이트된 색인 정의가 제공되며 이를 Cloud Manager을 통한 향후 애플리케이션 릴리스에 포함하는 것이 좋습니다.

이전 페이지구성 파이프라인 사용하기
다음 페이지쿼리 및 색인화 모범 사례

Experience Manager