2010-11-11 21 views
1

Notre site Web doit fournir des données au monde entier. Ce sont des données open-source que nous avons stockées et nous souhaitons qu'elles soient accessibles au public. C'est environ 2 millions de disques. Nous avons implémenté la recherche de ces enregistrements en utilisant Lucene, ce qui est bien, mais nous aimerions montrer un enregistrement individuel (disons que l'utilisateur clique dessus une fois la recherche terminée) et fournir des informations plus détaillées pour cela record.Dois-je utiliser Lucene uniquement pour la recherche?

Cette information plus détaillée n'est cependant pas stockée directement dans l'index ... il y a des relations de type many-to-many et nous utilisons notre base de données relationnelle (MySQL) pour fournir cette information.

Donc, comme un seul enregistrement appartient à une catégorie, nous voulons que l'utilisateur clique sur cette catégorie et montre le reste des enregistrements dans cette catégorie (beaucoup plus d'associations comme celle-ci). Ma question est la suivante: devrions-nous également utiliser Lucene pour stocker ce genre d'information et la récupérer par simple recherche (category:apples), ou MySQL devrait-il continuer à faire ce travail logique? Dois-je utiliser Lucene uniquement pour la partie recherche?

EDIT

Je voudrais souligner que tous nos dossiers sont assez statiques .... modifications sont apportées à ces données une fois par semaine.

Répondre

1

La force de Lucene réside dans la construction rapide d'un index d'un ensemble de documents et vous permettant de les rechercher. Si cette "information détaillée" n'a pas besoin d'être indexée ou recherchée, alors ne la stockez pas dans Lucene.

Lucene n'est pas une base de données, c'est un index.

+0

En fait cette information détaillée est recherchée plus ... comme une catégorie ... Dites qu'un enregistrement appartient à la catégorie 'pommes' ... alors ceci est consultable et en fait il est stocké dans l'index ... Cependant, lorsque l'utilisateur clique sur 'apple', nous utilisons MySQL pour récupérer les données de cette catégorie au lieu d'envoyer 'apple' à Lucene et d'obtenir les données de cette façon ... quelle est la meilleure approche? –

0

Vous voulez utiliser Lucene pour stocker des données ?, Je chose qu'il est ok, je l'ai utilisé Solr http://lucene.apache.org/solr/
qui construit sur Lucene pour travailler comme moteur de recherche et de stocker plus de données se rapportent à l'enregistrement qui utilisent peut-être pour affichage frontal. Cela a fonctionné avec 500k records pour moi, et 2mil records je pense que ça devrait aller.

+0

Je suis désolé, mais ce n'est pas lié à ma question. Je demande si Lucene devrait ** seulement ** être utilisé pour la recherche. –