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