performance - ¿Por qué una actualización de índice toma tanto tiempo en Solr 4.10.x?
indexing lucene (2)
Deberías usar commit suave como este
curl ''localhost:8900/solr/update?softCommit=true'' -H ''Content-type:application/json'' -d ''[{"id":"org.wikipedia.ur:http/wiki/%D9%85%DB%8C%D9%84","group":{"set":"wiki"}}]''
Estoy usando solr 4.10.3. Tengo que actualizar unos 100.000 índices. Las consultas son como por documento
curl ''localhost:8900/solr/update?commit=true'' -H ''Content-type:application/json'' -d ''[{"id":"org.wikipedia.ur:http/wiki/%D9%85%DB%8C%D9%84","group":{"set":"wiki"}}]''
Después de comenzar a actualizar este índice, después de 12 horas, solo se actualizan 48000 documentos.
Dónde está el problema. ¿Alguien puede guiarme?
Está utilizando la confirmación de ejecución con cada solicitud de curvatura. Esto fuerza a Solr a empujar el segmento (estructura de datos lucene para almacenar los índices) al disco con cada confirmación. Solr siempre escribe los datos en nuevos segmentos y parece que lo obligan a crear segmentos de 100K.
Solr usa mergePolicy como TieredMergePolicy y mergeFactor
como 10 parámetro predeterminado que se fusionan cada vez que solr tiene 10 segmentos de tamaño casi igual. Este proceso de fusión se ejecuta en segundo plano utilizando la implementación de ConcurrentMergeScheduler .
Este proceso de fusión requiere mucha CPU. Aquí puede usar softCommit
lugar de hardCommit
. Eso podría ayudarte.