prism:expirationDate クエリーのトラバーサル警告

問題点

AEM ログファイルには、次の警告が繰り返し表示されます。

23.03.2017 07:49:59.379 *WARN* [pool-8-thread-3] org.apache.jackrabbit.oak.spi.query.Cursors$TraversingCursor Traversed 2993000 nodes with filter Filter(query=select [jcr:path], [jcr:score], * from [dam:Asset] as a where [jcr
:content/metadata/prism:expirationDate] > cast('2017-03-22T07:00:00.000Z' as date) and [jcr:content/metadata/prism:expirationDate] < cast('2017-03-23T07:00:00.001Z' as date) and isdescendantnode(a, '/content/dam') /* xpath: /
jcr:root/content/dam//element(*, dam:Asset)[(jcr:content/metadata/@prism:expirationDate > xs:dateTime('2017-03-22T07:00:00.000Z') and jcr:content/metadata/@prism:expirationDate < xs:dateTime('2017-03-23T07:00:00.001Z'))] */,
path=/content/dam//*, property=[jcr:content/metadata/prism:expirationDate=[(2017-03-22T07:00:00.000Z.., ..2017-03-23T07:00:00.001Z)]]); consider creating an index or changing the query

この警告メッセージは、/oak:index/damAssetLucene インデックスが機能しない AEM インスタンスで何らかのエラーが発生したことを意味します。  これにより、damAssetLucene のインデックスを使用する代わりに、上記のクエリーが実行されます。

環境

原因

/oak:index/damAssetLucene インデックスが正しくありません。ログファイルを調査し、「damAssetLucene」を検索して正確な根本原因を見つける必要があります。

解決策

A. 根本原因を調査します

「damAssetLucene」の error.log およびその他の設定されたインデックス作成ログを検索します。  ERROR または WARN レベルのメッセージを調べて、それらが問題の原因であるかどうかを確認します。

例えば、ある顧客のケースでは、これが問題の原因でした。

22.03.2017 12:46:45.205 *ERROR* [Thread-44] org.apache.jackrabbit.oak.plugins.index.lucene.IndexTracker Could not access the Lucene index at /oak:index/damAssetLucene
java.io.FileNotFoundException: [/oak:index/damAssetLucene] segments_8o28

B. ローカルインデックスコピーの再構築を試します

  1. AEM を停止します。

  2. crx-quickstart/repository/index を削除します

  3. AEM を起動します。

  4. 再度テストします

C. インデックスを再作成するかどうかを決定します

ローカルのインデックスコピーを再構築しても問題が解決しなかった場合、さらなるデバッグについては、AEM カスタマーケアにお問い合わせください。また、/oak:index/damAssetLucene インデックスを再作成する必要があるかどうかを決定してください。

アドビのロゴ

アカウントにログイン