2013-02-06 4 views
0

J'essaie d'importer une grande base de données MySQL dans Solr, et les requêtes d'importation sont assez lourdes sur le serveur (cela peut affecter le produit réel qui est en cours d'exécution et utiliser la base de données à ce temps). Y a-t-il un moyen de diviser l'importation complète en plusieurs morceaux plus petits? Je n'ai rien trouvé sur ce sujet ni ici ni dans la documentation de Solr.Solr importation complète en plusieurs petits morceaux

Je connais la fonction d'importation delta, mais je l'utilise pour les importations delta de données nouvelles/modifiées.

Répondre

1

Bien sûr, vous pouvez ajouter une condition comme

WHERE pk<'${dataimporter.request.INDEX}' 

et passer INDEX dans les params de demande. Ainsi, chaque fois que vous appelez l'importation complète, seule une partie des enregistrements est indexée. N'oubliez pas d'utiliser & clean = false bien sûr ou le contenu sera effacé chaque fois.

0

Probablement vous pouvez vérifier batchsize: -

batchSize (par défaut: 500) - enregistrements définit le nombre maximal (ou plutôt une suggestion pour le pilote) extraites de la base de données dans une requête à la base de données. La modification de ce paramètre peut aider dans les situations où les requêtes retournent à beaucoup de résultats. Cela peut ne pas aider, puisque l'implémentation de ce mécanisme dépend du pilote JDBC.

http://lucene.472066.n3.nabble.com/DataImportHandler-running-out-of-memory-td490797.html

Questions connexes