Question

Dans l'une de nos applications commerciales (Win32, écrite en Delphi), nous souhaitons implémenter la recherche en texte intégral. L’application stocke les données utilisateur dans un type de format binaire qui n’est pas directement reconnaissable en tant que texte.

Idéalement, j'aimerais trouver une solution en cours de traitement (la DLL serait OK) ou un serveur local auquel je pourrais accéder via TCP (de préférence). L'API devrait me permettre de soumettre des informations textuelles au serveur (ainsi que les métadonnées représentant le blob binaire d'où elles proviennent) et, bien sûr, cela devrait me permettre de faire une recherche en texte intégral avec au moins une prise en charge minimale des opérateurs logiques. et recherche de sous-chaîne. La prise en charge Unicode est requise.

J'ai trouvé une longue liste de moteurs de recherche sur Stack Overflow ( en quoi consiste recherche ) mais je ne comprends pas vraiment lequel de ces moteurs pourrait satisfaire mes besoins. J'ai pensé demander l'avis du Collectif avant de passer un ou deux jours à tester chacun d'entre eux.

Des suggestions?

Était-ce utile?

La solution

Il existe un certain nombre d’options sur le marché. Soit des produits commerciaux ou des variantes open source. Votre choix de moteur de recherche dépend beaucoup des clients que vous ciblez.

Microsoft propose une version Express gratuite de son serveur de recherche. Autant que je sache, l'édition Express est limitée à l'exécution du niveau d'application sur un serveur.

Il existe également le projet Apache Lucene , qui est à code source ouvert. Il a une belle API facile à utiliser et une grande communauté d'utilisateurs. Le projet initial est basé sur Java, mais il existe également d’autres implémentations , telles que NLucene pour .NET que j'ai utilisé personnellement.

Autres conseils

Je vous conseillerais de consulter SQLite - la recherche de texte intégral est incluse dans la dernière version.

Je suppose que la réponse dépend de votre base de données. Par exemple, SQL Server propose une recherche en texte intégral ainsi que des requêtes en langue anglaise si nécessaire.

Jetez un coup d'œil à l'utilisation de PostgreSQL et de tsearch.

Essayez d’utiliser postgresql avec tsearch

Sphinx est probablement l'option la plus efficace et la plus évolutive, alors que SQLite - FTS3 est l'option la plus simple.

Sans être en cours de traitement, Solr est très rapide (basé sur Lucene) et facilement accessible. depuis n'importe quelle plate-forme (HTTP)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top