2008-09-30 8 views
11

J'ai une base de données MS SQL et j'ai un champ varchar que je voudrais faire des requêtes comme where name like '%searchTerm%'. Mais pour le moment, c'est trop lent, même avec l'indexation en texte intégral de SQL Enterprise. Est-ce que quelqu'un peut expliquer comment Lucene .Net pourrait aider ma situation? Comment fonctionne l'indexeur? Comment fonctionnent les requêtes? Qu'est-ce qui est fait pour moi et que dois-je faire?Quelqu'un peut-il me donner un bon aperçu de comment fonctionne lucene.net?

Répondre

6

J'ai vu ce gars-là (Michael Neel) présent sur Lucene lors d'une réunion de groupe d'utilisateurs - efficace, vous construisez des fichiers d'index (en utilisant Lucene) et ils ont des pointeurs sur ce que vous voulez (lignes de base de données, quelle que soit)

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

Très rapide, flexible et puissant. Ce qui est bien avec Lucene, c'est la possibilité d'indexer diverses choses (fichiers, images, lignes de base de données) dans votre propre index en utilisant Lucene, puis de les traduire dans votre domaine métier, alors qu'avec SQL Server, tout être en SQL pour être indexé.

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

+0

Diapositives et code: http://code.google.com/p/vinull/source/browse/#svn/Presentations/Lucene –

4

Cette article (curieusement, c'est en haut des résultats de recherche Google :) a une assez bonne description de la façon dont la recherche Lucene pourrait être optimisée.

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

+0

Abandonné parce que le lien est mort. –

+2

Le lien est mort. J'ai fourni ce qui peut être un lien alternatif: http://it-stream.blogspot.com/2007/12/full-text-search-for-database-using.html – torial

+0

@torial - votre lien semble mort aussi –