Pregunta/problema

A veces puede ocurrir que el índice Lucene de un repositorio entre en un estado inconsistente, especialmente si el repositorio se cierra de forma anormal o si el proceso Java correspondiente se elimina de forma inesperada. Dependiendo de la severidad de la inconsistencia de un índice, es posible que el repositorio ya no pueda iniciarse correctamente.

Respuesta/resolución

La clase LuceneHandler de CRX amplía la clase SearchIndex[1] de Jackrabbit, que proporciona los siguientes parámetros de configuración para comprobar y reparar las inconsistencias del índice:

Parámetro Valor de propuesta Descripción
enableConsistencyCheck incorrecto Si se ajusta a true, se realiza una comprobación de consistencia en función del parámetro forceConsistencyCheck. Si se establece en false, no se realiza ninguna verificación de consistencia al inicio.
forceConsistencyCheck incorrecto Ejecuta una comprobación de consistencia en cada inicio. Si es falso, sólo se realiza una verificación de consistencia cuando el índice de búsqueda detecta una parada forzada previa.
autoRepair true Los errores detectados por una verificación de consistencia se reparan automáticamente. Si es falso, los errores solo se recogen en el registro.

Para activar una verificación de consistencia de índice, simplemente reconfigure el archivo de configuración correspondiente de workspace.xml del espacio de trabajo en cuestión; por ejemplo, <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 vez que esta configuración esté implementada, se ejecuta una comprobación de consistencia del índice al inicio que, dependiendo del volumen del repositorio y del tamaño del índice, puede tardar tiempo en terminar. En el archivo error.log de CRX, se puede supervisar el progreso de la verificación:

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

Tenga en cuenta que debe eliminar la configuración anterior de nuevo. De lo contrario, la comprobación de consistencia se activa cada vez que se reinicia el repositorio, lo que ralentiza el tiempo de inicio. Si se ajusta el valor de enableConsistencyCheck a false también se desactiva la comprobación por completo.

Reconstruir completamente el índice

Para recrear completamente el índice, detenga el repositorio, elimine los directorios de índices e inicie el repositorio. La reconstrucción del índice puede tomar algunas horas. Los directorios índice se almacenan por separado para cada nodo de clúster, en los siguientes directorios:

  • crx-quickstart/repository/repository/index
  • crx-quickstart/repository/workspaces/crx.default/index
  • crx-quickstart/repository/workspaces/crx.system/index

Aplica

CRX >= 1.4.x

Esta obra está autorizada con arreglo a la licencia de Reconocimiento-NoComercial-CompartirIgual 3.0 Unported de Creative Commons.  Los términos de Creative Commons no cubren las publicaciones en Twitter™ y Facebook.

Avisos legales   |   Política de privacidad en línea