Frage
Wie lässt sich die CQ5-Suchfunktion verbessern, indem Sie bestimmte Eigenschaften von der Indexierung ausschließen, die Rechtschreibprüfung aktiveren oder durch ein Verstopfen und andere Features?
Antwort, Auflösung
Das Suchmodul in CQ5 wird mithilfe von CRX erstellt. CRX verwendet einen eingebetteten Apache Lucene, um die Suche zu implementieren. CRX bietet verschiedene Parameter und Konfigurationen, um Ihnen die Möglichkeit zu geben, den Index festzulegen, um den Anforderungen Ihres Unternehmens gerecht zu werden.
Suchindex-Konfiguration:
Zuallererst kann eine CRX-Repository einen oder mehrere Arbeitsbereiche haben und jeder davon hat seinen eigenen Suchindex. Außerdem kann der Suchindex jedes Arbeitsbereiches in der Arbeitsbereich-Datei workspace.xml separat konfiguriert werden.
Bei einer Installation der standardmäßigen CQ5 haben Sie nur einen CRX-Arbeitsbereich mit dem Namen „crx.default“. Dieser Arbeitsbereich speichert den Inhalt Ihrer gesamten Site (exklusive de Versionen). Die Suchindex-Konfiguration für diesen Arbeitsbereich kann unter crx-quickstart/Arbeitsplätze/crx.default/workspace.xml gefunden werden Alle Konfigurationen dafür können im <SearchIndex>-Element vorgenommen werden. Ein Verweis auf all diese Konfigurationen finden Sie hier.
Hier sehen Sie das Beispiel einer workspace.xml Suchindex-Sektion:
...
<SearchIndex class="com.day.crx.query.lucene.LuceneHandler"> <param name="path" value="${wsp.home}/index"/> </SearchIndex> ...
indexing_config.xml configuration:
Die Konfigurationen in der Datei workspace.xml erlauben es Ihnen, das Verhalten des Suchindex einzustellen, aber Sie können nicht ändern, welcher Inhalt indexiert wird. Um dies zu konfigurieren, müssen wir uns die Datei indexing_config.xml ansehen, die es uns erlaubt, Indexierungsregeln anzugeben.
- In CQ-Versionen < = 5,4 finden Sie die Standardkonfigurationsdatei
indexing_config.xml
untercrx-quickstart/Server/runtime/0/_crx/WEB-INF/classes.
In CQ5.5 ist die Standardkonfigurationsdatei in das im OSGi-Container bereitgestellte Projektarchiv-Bundle eingebettet.
- Kopieren Sie die Standard-Suchindex-Konfigurationsdatei indexing_config.xml unter crx-quickstart/repository/workspaces/crx.default/indexing_config.xml.
* Für CQ5.4 und ältere Versionen finden Sie diese Datei unter crx-quickstart/Server/runtime/0/_crx/WEB-INF/classes/indexing_config.xml.
* Für CQ5.5 haben wir die Standarddatei indexing_config.xml unten für Sie kopiert. - Jetzt können wir einen Pfad für unsere eigene indexing_config.xml im SearchIndex-Element von workspace.xml festlegen. Öffnen Sie „crx-quickstart/workspaces/crx.default/workspace.xml“ in einem Texteditor und fügen Sie ein indexingConfiguration-Paramter wie unten gezeigt hinzu:
...<SearchIndex class="com.day.crx.query.lucene.LuceneHandler"> <param name="path" value="${wsp.home}/index"/> <param name="resultFetchSize" value="50" /> <param name="indexingConfiguration" value="${wsp.home}/indexing_config.xml"/> </SearchIndex>
Gilt für
CQ5.2+
indexing_config.xml aus CQ5.5
<?xml version="1.0"?> | |
<!DOCTYPE configuration SYSTEM "http://jackrabbit.apache.org/dtd/indexing-configuration-1.2.dtd"> | |
<configuration | |
xmlns:cq="http://www.day.com/jcr/cq/1.0" | |
xmlns:dam="http://www.day.com/dam/1.0" | |
xmlns:nt="http://www.jcp.org/jcr/nt/1.0" | |
xmlns:jcr="http://www.jcp.org/jcr/1.0" | |
xmlns:sling="http://sling.apache.org/jcr/sling/1.0"> | |
<!-- Indexieren Sie keinen Content von Teilassets --> | |
<index-rule nodeType="nt:resource" | |
condition="ancestor::subassets/@jcr:primaryType='{http://www.jcp.org/jcr/nt/1.0}unstructured'"> | |
</index-rule> | |
<!-- | |
Schließen Sie einige bekannte Eigenschaften aus dem Knotenbereich aus | |
Volltextindex. Fügen Sie hierunter keine Regeln hinzu, da | |
diese Regel stimmt mit jedem beliebigen Knoten überein und fungiert als Standard/Rückgriff.. | |
--> | |
<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">*:.*</property> | |
</index-rule> | |
<!-- Cq Page for jcr:contains(jcr:content, "...") searches --> | |
<aggregate primaryType="cq:PageContent"> | |
<include>*</include> | |
<include>*/*</include> | |
<include>*/*/*</include> | |
<include>*/*/*/*</include> | |
</aggregate> | |
<aggregate primaryType="dam:Asset"> | |
<include>jcr:content</include> | |
<include>jcr:content/metadata</include> | |
<include>jcr:content/metadata/*</include> | |
<include>jcr:content/renditions</include> | |
<include>jcr:content/renditions/original</include> | |
<include>jcr:content/renditions/original/jcr:content</include> | |
<!-- child axis orderby index --> | |
<include>jcr:content/renditions/original/jcr:content/jcr:lastModified</include> | |
</aggregate> | |
<!-- nt:file child axis orderby index --> | |
<aggregate primaryType="nt:file"> | |
<include>jcr:content</include> | |
<include>jcr:content/jcr:lastModified</include> | |
</aggregate> | |
<!-- cq:Page child axis orderby index --> | |
<aggregate primaryType="cq:Page"> | |
<include>jcr:content</include> | |
<include>jcr:content/cq:lastModified</include> | |
</aggregate> | |
</configuration> | |