Oui, je l'ai utilisé exactement pour ce que tu décris. Nous avions deux services - un pour la lecture, et un pour l'écriture, mais seulement parce que nous avions de multiples lecteurs. Je suis sûr que nous aurions pu le faire avec un seul service (le rédacteur) et intégrer le lecteur dans l'application web et les services.
J'ai utilisé lucene.net comme un indexeur de base de données générale, donc ce que je récupérais était essentiellement des ID de base de données (pour les messages email indexés), et je l'ai également utilisé pour récupérer suffisamment d'informations pour remplir les résultats de recherche ou similaires sans toucher à la base de données. Ça a très bien fonctionné dans les deux cas, même si le SQL peut être un peu lent, car vous devez pratiquement obtenir un ID, sélectionner un ID, etc. Nous avons contourné cela en créant une table temporaire (avec seulement la ligne ID dedans) et en insérant en masse à partir d'un fichier (qui était la sortie de lucene) puis en le joignant à la table des messages. Ça été beaucoup plus rapide.
Lucene n'est pas parfait, et vous devez penser un peu en dehors de la boîte de la base de données relationnelle, car ce n'en est TOTALEMENT pas une, mais il est très très bon dans ce qu'il fait. Ça vaut le coup d'œil, et, on m'a dit, qu'il n'a pas les problèmes de "oups, désolé, vous devez reconstruire votre index à nouveau" que MS SQL FTI a.
BTW, nous avions affaire à 20-50 millions d'emails (et environ 1 million de pièces jointes uniques), totalisant environ 20 Go d'index lucene je pense, et 250+ Go de base de données SQL + pièces jointes.
La performance était fantastique, pour le moins - assurez-vous juste de penser à, et ajuster, vos facteurs de fusion (lorsqu'il fusionne les segments d'index). Il n'y a aucun problème à avoir plus d'un segment, mais il peut y avoir un GROS problème si vous essayez de fusionner deux segments qui ont 1 million d'éléments dans chaque, et que vous avez un thread observateur qui arrête le processus s'il prend trop de temps..... (oui, cela nous a donné du fil à retordre pendant un certain temps). Donc gardez le nombre maximal de documents par truc BAS (c'est-à-dire, ne le réglez pas à maxint comme nous l'avons fait!)
EDIT Corey Trager a documenté comment utiliser Lucene.NET dans BugTracker.NET ici.