0

Nous avons actuellement en production SQL Server 2005 et nous utilisons sa recherche de texte intégral pour une recherche de site e-commerce d'une base de données de millions de produits. Je l'ai optimisé autant que possible (je pense) et nous voyons encore des temps de recherche de cinq secondes.Est-ce que Lucene.net est un bon choix pour la recherche sur le site Web de la base de données produit 1M? (abandonner sur SQL Server 2005 recherche plein texte)

(Nous ne avons pas besoin ou le site grimoire PDF (etc.) fonctions d'indexation de documents ... Juste vitesse « Google » pour la recherche sur le site.)

J'allais acheter dtSearch mais maintenant je me rends compte que je peux utilisez simplement Lucene.net et économisez 2 500 $ pour deux licences serveur.

J'ai lu sur un post que Lucene.Net n'est pas bon pour les recherches de site Web.

Est-ce que quelqu'un d'autre a utilisé Lucene.Net d'ASP.Net? Cela prend-il beaucoup de mémoire?

Des problèmes?

Un commentaire?

Répondre

1

Nous utilisons Lucene depuis des lustres et cela a très bien marché pour nous. Nous avons des bases de données avec des entrées> 1M et les requêtes Lucene retournent en quelques millisecondes. Pour nous, nous avons un léger désavantage: de nouvelles entrées peuvent être ajoutées à la base de données à tout moment, et la commutation entre l'indexation et l'interrogation peut être relativement lente (la première recherche après la mise à jour de l'index prend donc 400ms au lieu de les 5ms habituels). Mais pour un site Web de produit où vous pouvez faire des mises à jour par lots, vous devriez être en or.

L'autre inconvénient de Lucene est que les fichiers d'index ne sont accessibles que par un seul processus à la fois. Si vous avez plusieurs serveurs Web, cela signifie que vous devez exécuter Lucene dans un processus distinct. Pour nous, nous avons juste un service fonctionnant sur notre cluster de base de données (il y a donc un failover en cas de défaillance) auquel nos serveurs web se connectent via une simple interface sockets pour effectuer des requêtes.

+0

Oh, encore une chose. Nous utilisons en fait Java Lucene, même si nous sommes aussi un magasin .NET. Nous avons essayé Lucene.Net, mais il y avait plusieurs versions derrière la version Java à l'époque. C'est surtout attrapé maintenant, je crois. –

+1

"L'autre inconvénient de Lucene est que les fichiers d'index ne sont accessibles que par un processus à la fois." Ce n'est pas vrai, vous pouvez avoir de nombreuses applications/processus/threads à lire à tout moment. Vous pouvez même écrire des données et toujours l'interroger. Mais il ne devrait y avoir qu'une seule personne qui écrit à la fois. –

1

Une autre option est Solr, qui est basée sur Lucene, donc elle est également très rapide mais est plus facile à configurer et à utiliser, cependant elle fonctionne comme un processus Java séparé.