2

情報: cq5 にインデックス設定ファイルを提供しました。次のルールを指定して、プロパティ cq:template にインデックスを作成していません。

<index-rule nodeType="nt:base">
 <property nodeScopeIndex="false">cq:template</property>
</index-rule>

インデックスを再構築しました。ログは、インデックスの再作成が適切に行われたことを示しています。

私が直面している問題: 次の SQL2 クエリを実行すると、上記のインデックス作成ルールがない場合と同じ結果が得られます。

SELECT s.[cq:template] FROM [nt:base] AS s WHERE s.[cq:template] like '/apps/geometrixx/templates/contentpage'
4

1 に答える 1

5

このルールでは、実際には cq:template ルールを除くすべてのプロパティがインデックスから省略されます (また、nodeScopeIndex="false" を定義したため、フルテキスト インデックスから cq:template が除外されます)。詳細については、jackrabbit のドキュメントを参照してください。

要素を定義する<property nodeScopeIndex="false">cq:template</property>と、システムはプロパティをインデックスに含めます。ただし、nodeScopeIndex="false" は、CRX/Jackrabbit にフルテキスト インデックスにプロパティを含めないように指示します。つまり、sql で contains(...) を使用する検索、xpath で jcr:contains(...) を使用する検索を除くすべての検索で使用できます。

プロパティ全体のインデックス作成を回避するには、そのノードに一致する nodeType/condition 属性を持つ最初のインデックス ルールからプロパティを省略します。index_config.xml ファイル内のルールはトップダウンで処理されるため、最初に一致するルールである必要があります。

したがって、CQ5 のインデックスから cq:template プロパティを削除するには、次の手順を実行します。

  1. そのまま使用できる CQ5 バージョンの indexing_config.xml を抽出します (手順については、このドキュメントを参照してください)。
  2. から削除<property nodeScopeIndex="false">cq:tempate</property>します<index-rule nodeType="nt:base">
  3. 最後のルールの正規表現を<property isRegexp="true">からに変更.*:.*^(?!cq:template).*:.*$ます。

変更を加えた後、インデックス ルールは次のようになります。

<index-rule nodeType="nt:base">
  <property nodeScopeIndex="false">analyticsProvider</property>
  <property nodeScopeIndex="false">analyticsSnippet</property>
  <property nodeScopeIndex="false">hideInNav</property>
  <property nodeScopeIndex="false">offTime</property>
  <property nodeScopeIndex="false">onTime</property>
  <property nodeScopeIndex="false">cq:allowedTemplates</property>
  <property nodeScopeIndex="false">cq:childrenOrder</property>
  <property nodeScopeIndex="false">cq:cugEnabled</property>
  <property nodeScopeIndex="false">cq:cugPrincipals</property>
  <property nodeScopeIndex="false">cq:cugRealm</property>
  <property nodeScopeIndex="false">cq:designPath</property>
  <property nodeScopeIndex="false">cq:isCancelledForChildren</property>
  <property nodeScopeIndex="false">cq:isDeep</property>
  <property nodeScopeIndex="false">cq:lastModified</property>
  <property nodeScopeIndex="false">cq:lastModifiedBy</property>
  <property nodeScopeIndex="false">cq:lastPublished</property>
  <property nodeScopeIndex="false">cq:lastPublishedBy</property>
  <property nodeScopeIndex="false">cq:lastReplicated</property>
  <property nodeScopeIndex="false">cq:lastReplicatedBy</property>
  <property nodeScopeIndex="false">cq:lastReplicationAction</property>
  <property nodeScopeIndex="false">cq:lastReplicationStatus</property>
  <property nodeScopeIndex="false">cq:lastRolledout</property>
  <property nodeScopeIndex="false">cq:lastRolledoutBy</property>
  <property nodeScopeIndex="false">cq:name</property>
  <property nodeScopeIndex="false">cq:parentPath</property>
  <property nodeScopeIndex="false">cq:segments</property>
  <property nodeScopeIndex="false">cq:siblingOrder</property>
  <property nodeScopeIndex="false">cq:template</property>
  <property nodeScopeIndex="false">cq:trigger</property>
  <property nodeScopeIndex="false">cq:versionComment</property>
  <property nodeScopeIndex="false">jcr:createdBy</property>
  <property nodeScopeIndex="false">jcr:lastModifiedBy</property>
  <property nodeScopeIndex="false">sling:alias</property>
  <property nodeScopeIndex="false">sling:resourceType</property>
  <property nodeScopeIndex="false">sling:vanityPath</property>
  <property isRegexp="true">^(?!cq:template).*:.*$</property>
</index-rule>

警告のメモ:

製品コードが何らかの方法で cq:template を使用する可能性があるため、検索インデックスから cq:template を削除しても安全かどうかはわかりません。ベスト プラクティスとして、カスタム アプリケーション プロパティのみを除外することをお勧めします。また、他のコンテンツ パスへの参照を含むプロパティをフルテキスト インデックスに含める必要があります。これは、CQ5 (AEM) でページを移動すると、そのページが参照されている場所を確認するために jcr:contains 検索が実行されるためです。そのため、nodeScopeIndex="false" を使用してそのようなプロパティを除外するか、上記の正規表現を変更して除外すると、参照検索は失敗します。その後、古いパスへの古い参照になってしまいます。


参考文献:

  1. 公式 indexing_config.xml リファレンス: http://wiki.apache.org/jackrabbit/IndexingConfiguration
  2. CQ5 で indexing_config.xml を更新する方法についての説明: http://helpx.adobe.com/experience-manager/kb/SearchIndexingConfig.html
于 2014-01-17T01:41:21.663 に答える