0 votes

Options de recherche de texte pour une application Web ?

Je vais mettre en œuvre une application Web utilisant Rails avec MySQL sur un petit VPS CentOS. (Petit serveur, base d'utilisateurs limitée pour commencer.) Elle va stocker beaucoup de texte, un peu comme un blog. J'aimerais offrir des options de recherche puissantes : parenthèses, ET, OU, expression exacte.

L'autre élément est que les données sont privées, de sorte que l'utilisation de Google ou d'un autre fournisseur de recherche hébergé en externe n'est probablement pas envisageable.

J'ai une certaine expérience des capacités de recherche en texte intégral intégrées à PostgreSQL, mais pour ce projet, j'opte pour MySQL. J'ai consulté la documentation de MySQL et je ne pense pas que les index en texte intégral de MySQL soient très intéressants.

Et si vous utilisiez simplement %LIKE% des requêtes ? Cela est-il déjà fait ? Si je le faisais, cela signifierait-il que le moteur de base de données devrait examiner chaque caractère de la colonne pour chaque recherche ? Je n'en suis pas sûr.

Toute réflexion ou tout conseil serait apprécié.

4voto

jdl Points 12272

Quelques discussions précédentes à ce sujet. J'ai personnellement utilisé Ferret en production, Sphinx en quasi-production, et Xapian pour m'amuser. À moins que je n'aie absolument besoin d'une mise en évidence facile du texte, je choisirais Sphinx pour un nouveau projet aujourd'hui.

http://stackoverflow.com/questions/73527/whats-the-best-option-for-searching-in-ruby-on-rails

http://stackoverflow.com/questions/47656/how-do-i-do-full-text-searching-in-ruby-on-rails

http://stackoverflow.com/questions/737275/pros-cons-of-full-text-search-engine-lucene-sphinx-postgresql-full-text-searc

3voto

Alex Martelli Points 330805

La fonctionnalité de recherche en texte intégral de MySQL est assez limitée (uniquement sur MyISAM, avec de nombreuses autres limitations), mais.., Sphinx est très forte, et il peut utiliser le protocole propre à MySQL, ce qui lui permet de s'intercaler entre votre client et votre serveur MySQL, en transmettant la plupart des requêtes mais en traitant les requêtes en texte intégral, si c'est ainsi que vous souhaitez l'installer et l'utiliser (il existe d'autres options, bien sûr !).

0voto

Joel Meador Points 1804

Furet est un portage en rubis de Lucene. Ce site semble avoir des problèmes en ce moment.
Vous pouvez en lire un peu plus sur le site O'Reilly .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X