Come controllare e correggere le incongruenze dell'indice di ricerca

Domanda / Problema

A volte può accadere che l'indice Lucene di un archivio presenti alcune incoerenze, specialmente se l'archivio viene spento in modo anomalo o il corrispondente processo Java viene interrotto inaspettatamente. A seconda della gravità dell'incoerenza di un indice,l'archivio potrebbe non essere più in grado di avviarsi correttamente

Risposta / Risoluzione

La classe LuceneHandler di CRX sta ampliando la classe SearchIndex [1] di Jackrabbit che fornisce i seguenti parametri di configurazione per controllare e correggere le incongruenze dell'indice:

Parametro

Valore predefinito

Descrizione

enableConsistencyCheck

false

Se impostato su true, viene eseguito un controllo di coerenza a seconda del parametro forceConsistencyCheck. Se impostato su false, all'avvio non viene eseguito alcun controllo di coerenza.

forceConsistencyCheck

falso

Esegue un controllo di coerenza ad ogni avvio. Se false, un controllo di coerenza viene eseguito solo quando l'indice di ricerca rileva un precedente arresto forzato.

autoRepair

true

Gli errori rilevati da un controllo di coerenza vengono automaticamente corretti. Se false, gli errori vengono scritti solo nel registro.

Per attivare un controllo di coerenza dell'indice, è sufficiente riconfigurare il corrispondente file di configurazione dello workspace.xml dello spazio di lavoro in questione, ad esempio <crx_home>/crx-quickstart/repository/workspaces/crx.default/workspace.xml:

workspace.xml

<SearchIndex class="com.day.crx.query.lucene.LuceneHandler">
    ...
    <param name="enableConsistencyCheck" value="true" />
    <param name="forceConsistencyCheck" value="true" />
    <param name="autoRepair" value="true" />
</SearchIndex>

Una volta che questa configurazione è a posto, all'avvio viene eseguito un controllo di coerenza dell'indice che - a seconda del volume dell'archivio e delle dimensioni dell'indice - può richiedere un certo tempo per essere completato. Nel file error.log di CRX, può essere monitorato l'avanzamento del controllo:

*INFO * SearchIndex: Running consistency check...
*INFO * ConsistencyCheck: progress: 10%
*INFO * ConsistencyCheck: progress: 20%
...

Tieni a mente di rimuovere nuovamente la configurazione di cui sopra, altrimenti il controllo di coerenza verrà attivato ad ogni riavvio dell'archivio, rallentando il tempo di avvio. Impostare il valore di enableConsistencyCheck su false disabilita anche il controllo.

Ricreare completamente l'indice

Per ricreare completamente l'indice, ferma l'archivio, cancella le directory degli indici e avvia l'archivio. Creare nuovamente l'indice potrebbe richiedere alcune ore. Le directory degli indici sono memorizzate separatamente per ogni nodo del cluster, nelle seguenti director:

  • crx-quickstart/repository/repository/repository/index
  • crx-quickstart/repository/workspace/crx.default/index
  • crx-quickstart/repository/spazio di lavoro/sistemacrx.system/index

Prodotti interessati:

CRX >= 1.4.x

Logo Adobe

Accedi al tuo account