Je suis en train de construire un site Django et je cherche un moteur de recherche.
Quelques candidats :
-
Lucene/Lucene avec Compass/Solr
-
Sphinx
-
Recherche plein texte intégrée à Postgresql
-
Recherche plein texte intégrée MySQl
Critères de sélection :
- pertinence et classement des résultats
- vitesse de recherche et d'indexation
- la facilité d'utilisation et d'intégration avec Django
- ressources nécessaires - le site sera hébergé sur un VPS donc, idéalement, le moteur de recherche ne devrait pas nécessiter beaucoup de RAM et de CPU.
- évolutivité
- des fonctions supplémentaires telles que "Vous voulez dire ?", des recherches connexes, etc.
Si vous avez eu une expérience avec les moteurs de recherche ci-dessus, ou d'autres moteurs ne figurant pas dans la liste, j'aimerais connaître votre avis.
EDIT : En ce qui concerne les besoins d'indexation, comme les utilisateurs continuent à entrer des données dans le site, ces données doivent être indexées en permanence. Il n'est pas nécessaire que ce soit en temps réel, mais idéalement, les nouvelles données devraient apparaître dans l'index avec un retard de 15 à 30 minutes maximum.
26 votes
2¢ : La recherche en texte intégral MySQL et les transactions sont (actuellement) mutuellement exclusives. Les index plein texte MySQL nécessitent le type de table MyISAM, qui ne supporte pas les transactions. (Par opposition au type de table InnoDB qui supporte les transactions, mais pas les index fulltext).
3 votes
Recherche plein texte PostgreSQL,
Tsearch
n'est pas soutenir la recherche par expression. Cependant, c'est sur la liste des tâches à accomplir. sai.msu.su/~megera/wiki/FTS_Todo .1 votes
Si vous envisagez d'utiliser Django, vous devriez consulter l'application haystack. haystacksearch.org
4 votes
slideshare.net/billkarwin/
27 votes
@CarlG , Juste pour la référence de tout le monde. MySQL 5.6+ supporte la recherche plein texte avec le moteur innodb.