AEM as a Cloud Service:跨不相交路徑搜尋時,出現「沒有篩選器索引的全文查詢」警告

本文說明在跨不相交子樹狀結構執行全文檢索查詢時,Adobe Experience Manager中篩選r警告的頻繁全文檢索查詢的原因和影響。

說明 description

環境

  • Adobe Experience Manager (AEM) as a Cloud Service (AEMasaCS) (所有版本)
  • Adobe Experience Manager

問題/症狀

執行使用介於ISDESCENDANTNODE()個路徑限制之間的OR跨兩個或多個不連續子樹狀結構搜尋的全文JCR-SQL2查詢時,即使已定義並標籤自訂Lucene索引,記錄中仍會顯示以下警告:

WARN  org.apache.jackrabbit.oak.query.QueryImpl Fulltext query without index for filter ... no results will be returned
  • 警告每天記錄約3000次。
  • 觸發警告的範例查詢:
SELECT *
FROM [ nt:base]  AS node
WHERE ...
  AND (
    isdescendantnode(node,'/content/site-path') OR
    isdescendantnode(node,'/var/pim/green/products')
  )
OPTION (index tag datevCommon)
  • 在單一子樹狀結構中搜尋時,問題不會
  • 未觀察到效能影響,但記錄檔雜訊令人擔憂。
  • 兩個查詢的路徑不共用一個祖先。

原因

警告會在Oak的初始查詢計畫階段產生,在此階段會以無限索引成本評估合併的查詢圖形(全文+ OR跨不連續路徑),並觸發警告。 然後Oak會在內部重寫查詢,並正確使用自訂索引來執行。 警告會被視為誤導性,且不會反映實際的索引使用情形或查詢效能。

解決方法 resolution

請依照下列步驟解決問題:

  1. 檢閱查詢模式,以確認它跨不相交的ISDESCENDANTNODE()路徑限制使用OR,以及使用索引標籤的自訂Lucene索引。
  2. 如需進行中的調查和更新,請參閱上游Apache Jackrabbit Oak問題OAK-12270
  3. 客戶不需要採取任何動作,因為警告是Oak內部查詢規劃的結果,不會指出真正的索引或效能問題。
  4. 監視Oak Jira,瞭解警告隱藏或記錄調整的任何未來變更。
recommendation-more-help
experience-cloud-kcs-help-kbarticles