2010-05-27 5 views
1

Après-midi les gars,Comment gérer les données en constante évolution et les indices SOLR?

J'utilise un index SOLR pour rechercher des éléments sur mon site. Les résultats de la recherche contiennent une note moyenne de l'élément et un nombre de commentaires. Les résultats peuvent être triés par note et nombre de commentaires.

Mais évidemment avec l'index solr, ces nombres ne sont pas mis à jour jusqu'à ce que le db (2million ~ rangées) soit réindexé (fait la nuit, probablement).

Selon vous, quelle est la meilleure façon d'aborder ce problème?

Répondre

2

Eh bien, je pense que vous devriez changer votre db - index politique de synchronisation:

  • Première approche: lorsque des modifications de la base de données affichent également des modifications commettant (un lot d'entre eux) à des indices. Vous devriez écrire un niveau de mappeur pour mapper vos objets de domaine à docs de solr (rappelez-vous, persiste et si ça va bien alors index - ceci fonctionne bien pour nous ;-)). Si vous voulez réaliser des mises à jour d'index en temps quasi réel, vous devriez voir des solutions comme zoey (framework de recherche basé sur lucene)
  • Deuxième approche: jetez un oeil à l'importation delta (et programmez plus fréquemment les mises à jour d'index).
+0

Excellent, merci pour la réponse Lici, je vais jeter un oeil à Zoie la semaine prochaine, est l'interface, procédure d'installation similaire à Solr? Je ne suis pas familier avec l'objet de domaine de mappage à solr docs, avez-vous des liens qui pourraient éclairer? Encore une fois, merci pour votre réponse :) – Tom

+0

Zoey est une solution à levier inférieur à Solr. Je pense que la meilleure solution est de continuer l'indexation via DIH et aussi de concevoir votre domaine -> SolrInputDocument mapping niveau pour obtenir des résultats actualisés. Votre niveau de mappage dépend de la technologie client choisie. J'utilise SolrJ (basé sur Java). Voir: http://wiki.apache.org/solr/IntegratingSolr – Lici

Questions connexes