Come modificare le configurazioni dell'indice di ricerca in CQ5

Domanda

Come possiamo mettere a punto la nostra funzionalità di ricerca CQ5, escludere alcune proprietà dall'indicizzazione, abilitare il controllo ortografico, la correzione ortografica o altre caratteristiche?

Risposta, Soluzione

Il modulo di ricerca in CQ5 è costruito utilizzando CRX.  CRX utilizza un indice incorporato Apache Lucene per implementare la ricerca.  CRX fornisce vari parametri e configurazioni che consentono di regolare con precisione l'indice per soddisfare le proprie esigenze.

Configurazione di SearchIndex:

Prima di tutto, un archivio CRX può avere uno o più spazi di lavoro, ognuno con il proprio indice di ricerca.  Inoltre, l'indice di ricerca di ogni area di lavoro può essere configurato separatamente nel file workspace.xml dell'area di lavoro.

In un'installazione predefinita di CQ5 hai solo uno spazio di lavoro CRX chiamato "crx.default".  Questo spazio di lavoro memorizza tutti i contenuti del tuo sito (escluse le versioni).  La configurazione dell'indice di ricerca per questo spazio di lavoro si trova in crx-quickstart/workspaces/crx.default/workspace.xml.  Tutte le configurazioni possono essere realizzate all'interno dell'elemento <SearchIndex>.  Un riferimento a tutte queste configurazioni può essere trovato qui.

Qui è presente una sezione SearchIndex di esempio di workspace.xml:

...

 <SearchIndex class="com.day.crx.query.lucene.LuceneHandler"> <param name="path" value="${wsp.home}/index"/> </SearchIndex> ...

configurazione indexing_config.xml

Le configurazioni in workspace.xml permettono di regolare il comportamento dell'indice di ricerca, ma non di modificare il contenuto indicizzato.  Per configurarlo, dobbiamo guardare il file indexing_config.xml che ci permette di specificare le regole di indicizzazione.

  • Nelle versioni di CQ <= 5.4 il file di configurazione predefinito indexing_config.xml si possono trovare in crx-quickstart/server/runtime/0/_crx/WEB-INF/classes.
  • In CQ 5.5, il file di configurazione predefinito è incorporato nel bundle dell'archivio, distribuito nel contenitore OSGi.
Consulta la seguente pagina di documentazione di Apache Jackrabbit per maggiori dettagli sullaconfigurazione dell'indicizzazione: http://wiki.apache.org/jackrabbit/IndexingConfiguration

Per aggiungere una configurazione di indicizzazione personalizzata:
  1. Copia il file di configurazione predefinito di ricerca indexing_config.xml in crx-quickstart/repository/workspaces/crx.default/indexing_config.xml.
    * Per le versioni CQ5.4 e precedenti puoi trovare questo file in crx-quickstart/server/runtime/0/_crx/WEB-INF/classes/indexing_config.xml.
    * Per CQ5.5, abbiamo copiato il file indexing_config.xml predefinito qui sotto per comodità.
  2. Ora possiamo impostare un percorso per il nostro indexing_config.xml personalizzato nell'elemento SearchIndex dello spazio di workspace.xml.  Apri crx-quickstart/workspaces/crx.default/workspace.xml in un editor di testo e aggiungi un parametro indexingConfiguration come riportato di seguito:
    ...
     <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> 
    ...


Per un riferimento alle funzioni di ricerca disponibili in CRX, consulta il seguente link.

Si applica a

CQ 5.2+

indexing_config.xml da 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">

<!-- Non indicizzare il contenuto delle sottoattività -->
<index-rule nodeType="nt:resource"
condition="ancestor::subassets/@jcr:primaryType='{http://www.jcp.org/jcr/nt/1.0}unstructured'">
</index-rule>

<!--
Escludi alcune proprietà ben note dall'ambito del nodo
indice fulltext. Non aggiungere regole al di sotto di questa, dal momento che
questa regola corrisponde a qualsiasi nodo e agisce come un default/fallback.
-->
<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:contenuto</include>
<include>jcr:content/metadata</include>
<include>jcr:content/metadata/*</include>
<include>jcr:content/rendizioni</include>
<include>jcr:content/rendizioni/originale</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:contenuto</include>
<include>jcr:content/jcr:lastModified</include>
</aggregate>

<!-- cq:Page child axis orderby index -->
<aggregate primaryType="cq:Page">
<include>jcr:contenuto</include>
<include>jcr:content/cq:lastModified</include>
</aggregate>

</configuration>

 Adobe

Ottieni supporto in modo più facile e veloce

Nuovo utente?

Adobe MAX 2024

Adobe MAX

The Creativity Conference

14-16 ottobre Miami Beach e online

Adobe MAX 2024

Adobe MAX

The Creativity Conference

14-16 ottobre Miami Beach e online