2011-06-07 5 views
1

Mon commit semble prendre trop de temps, si vous remarquez de l'état DataImport donné ci-dessous pour engager 1000 docs ses prenant plus de 24 minutesSolr commit trop long

<str name="status">busy</str> 
<str name="importResponse">A command is still running...</str> 
<lst name="statusMessages"> 
<str name="Time Elapsed">0:24:43.156</str> 
<str name="Total Requests made to DataSource">1001</str> 
<str name="Total Rows Fetched">1658</str> 
<str name="Total Documents Skipped">0</str> 
<str name="Full Dump Started">2011-06-07 09:15:17</str> 
<str name=""> 
Indexing completed. Added/Updated: 1000 documents. Deleted 0 documents. 
</str> 
</lst> 

Que peut être la cause , J'ai essayé de chercher une raison ou un moyen d'améliorer , mais je ne suis pas en mesure de trouver. À ce rythme, mes documents ne seront jamais indexés, étant donné que j'ai plus de 100 000 entrées dans la base de données toutes les heures.

Cordialement, Rohit

+0

Vous devez voir la configuration de votre gestionnaire d'importation de données pour avoir une meilleure idée. – hross

+0

Avez-vous regardé la latence de votre base de données? Exécutez la même requête sur votre base de données et voyez combien de temps cela prend ... – hross

Répondre

1

Je ne sais pas si vous utilisez solrj

public abstract class SolrServer 

mais si vous le faites, vous avez vraiment besoin d'indexer par chuncks/collections:

public UpdateResponse add(Collection<SolrInputDocument> docs) 

et pas un par un

0

Ont ajouté optimize = false dans le gestionnaire d'importation de données. Cela a rendu les choses plus rapides dans une certaine mesure, maintenant j'optimise seulement pendant les heures creuses.