Question

J'ai une base de données MS SQL et un champ varchar dans lequel j'aimerais effectuer des requêtes comme , où le nom s'appelle '% searchTerm%' . Mais pour le moment, il est trop lent, même avec l'indexation de texte intégral de l'entreprise SQL.

Quelqu'un peut-il expliquer comment Lucene .Net pourrait améliorer ma situation? Comment fonctionne l'indexeur? Comment fonctionnent les requêtes?

Qu'est-ce qui est fait pour moi et que dois-je faire?

Était-ce utile?

La solution

J'ai vu ce type (Michael Neel) présenter Lucene lors d'une réunion de groupe d'utilisateurs. En fait, vous construisez des fichiers d'index (à l'aide de Lucene) et ils ont des pointeurs sur ce que vous voulez (rangées de la base de données, etc.)

http://code.google.com/p / vinull / source / browse / # svn / Exemples / LuceneSearch

Très rapide, flexible et puissant.

Ce qui est bien avec Lucene, c’est la possibilité d’indexer une variété de choses (fichiers, images, rangées de bases de données) ensemble dans votre propre index en utilisant Lucene, puis de les restituer dans votre domaine professionnel, alors qu’avec SQL Server, être en SQL pour être indexé.

Il ne semble pas que ses diapositives figurent dans le code Google.

Autres conseils

Cette article (curieusement, il figure en haut des résultats de recherche Google :) décrit assez bien comment la recherche Lucene pourrait être optimisée.

Correctement configuré, Lucene devrait facilement battre la recherche d'indexation de texte intégral SQL (avant 2005). Si vous utilisez MS SQL 2005 et que les performances de votre recherche sont encore trop lentes, vous pouvez envisager de vérifier la configuration de votre base de données.

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