2015-03-03 1 views
0

Prenez ce scénario:Je veux réindexer collection entière dans Apache Solr utilisant le client Solrj

je les données importées de la table de relations Oracle à savoir wlslog qui contient 4 lignes. Maintenant, j'indexe ces données depuis Apache Solr Console. Maintenant, lorsque j'interroge cette collection de Solrj, elle récupère 4 lignes comme attendu. Mais maintenant j'ajoute 2 nouvelles lignes de la base de données Oracle à la table wlslog. Mais quand j'appelle cette collection par l'intermédiaire du client de solrj. Il récupère seulement 4 lignes que j'ai importées une fois.

Donc, il y a un moyen dans Solrj que nous puissions obtenir les 6 lignes sans faire de réindexation ou d'importation de re-données. ?

faites-moi savoir si vous avez des questions.

+0

Normalement c'est à votre application d'ajouter un document dans Solr lorsqu'une nouvelle ligne DB est ajoutée; c'est ce que vous vouliez dire? – Yann

+0

@Yann >> Fondamentalement ici les choses sont comme il y a des processus batch qui change la table de la base de données (wlslog) ou il y a des formulaires qui mettent à jour la table de base de données (wlslog) .. base de données .. donc est-il de toute façon à travers lequel je peux accomplir cela? Je ne veux pas importer toutes les données à chaque fois via Solrj. Je veux juste importer toutes les données modifiées/ajoutées dans la table pour les refléter dans Apache Solr en utilisant Solrj Client. –

+0

Je ne trouve pas de moyen de le faire, sauf que votre application (par lots ou interactive) met à jour l'index Solr en même temps qu'elle met à jour la base de données. – Yann

Répondre

0

J'ai été dans une situation similaire il y a longtemps, une base de données Oracle à indexer et de nombreuses sources de modifications qui ne peuvent pas être modifiées. La conception finale est un déclencheur sur la table à indexer qui signale tous les enregistrements modifiés ou ajoutés à une file d'attente. La file d'attente est interrogée par un processus dédié pour mettre à jour Solr.

Si vous contrôlez les sources de modification, il est beaucoup plus simple de modifier ces processus pour mettre à jour les enregistrements Oracle et l'index Solr dans une transaction.