2009-12-23 5 views
2

J'essaie de créer une recherche pour mon site Web sur une base de données mySQL. J'ai commencé à utiliser Sphinx mais hésitait à apprendre que l'index ne se mettait pas à jour en temps réel. J'ai vu qu'ils avaient un almost real time update mais je crains que cela ne corresponde pas bien à mon système parce que le nouveau contenu est ajouté à la base de données minute par minute. Ce nouveau contenu doit être ajouté immédiatement et réindexer après chaque mise à jour semble étrange.Création d'une recherche sur une base de données mySQL

Je suis actuellement à la recherche dans Solr qui est construit sur Lucene mais cela ne semble pas correspondre à mes besoins, car il s'agit davantage d'une recherche basée sur des fichiers au lieu d'une recherche de base de données. Cela ressemble aussi énormément à configurer pour une recherche relativement simple.

J'ai également trouvé this stackoverflow question mais j'ai eu quelques problèmes avec cela aussi. La première est que je ne cherche pas à travers un seul domaine mais plusieurs. De plus, je crains que les recherches effectuées uniquement en SQL soient trop lentes sur ma base de données, ce qui, espérons-le, se retrouvera dans les centaines de milliers d'enregistrements, voire plus.

Si quelqu'un a des opinions sur l'un des logiciels que j'ai mentionnés ou que je n'ai pas, toutes les idées sont les bienvenues. J'utilise Java pour le back-end si cela fait une différence. Merci.

+0

Je suis allé avec le vieux Lucene et après un peu de travail pour le mettre en place, il s'est avéré être le choix parfait. – UmYeah

Répondre

2

Il ya aussi simplement Lucene et Xapian --- ce dernier a PHP-bindings.

3

À leur base, les bases de données ne sont que des fichiers. Quel est le problème avec une recherche basée sur un fichier?

Il semble que Solr répond à vos besoins. Si vous utilisez leur exemple de configuration qu'ils fournissent dans leur téléchargement, il n'y a pas grand chose à faire pour commencer. Tout ce que vous devez faire est de configurer votre schéma.xml pour vos données.

Pour obtenir une recherche en temps réel, vous devez ajouter vos documents à l'index solr en temps réel. Ceci est un simple à poster à l'une des servlets de Solr ou peut être fait par SolrJ (leur client java).

Si vous cherchez sur plusieurs colonnes, je pense que Solr sera plus efficace et plus facile à utiliser qu'une base de données. Il fournira également un ensemble de fonctionnalités plus riche tel que le facettage et le stemming.

+0

Rien à redire avec la recherche par fichier. Juste semblait que cela pourrait être un peu plus difficile à mettre en place en conséquence. Mais il semble que Solr soit le bon choix à ce stade. Merci pour l'info sur la recherche en temps réel avec Solr. – UmYeah

Questions connexes