Да, използвах го точно за това, което описваш. Имахме две услуги – една за четене и една за писане, но само защото имахме множество читатели. Сигурен съм, че бихме могли да го направим само с една услуга (писателят) и да вградим четеца в уеб приложението и услугите.
Използвах lucene.net като общ индексатор на база данни, така че това, което получих обратно, бяха основно идентификаторите на DB (към индексирани имейл съобщения), и също така го използвах, за да получа обратно достатъчно информация, за да попълвам резултати от търсене или нещо подобно, без да докосвам база данни. Работи чудесно и в двата случая, въпреки че SQL може да стане малко бавен, тъй като почти трябва да получите идентификационен номер, да изберете идентификатор и т.н. Заобиколихме това, като направихме временна таблица (само с идентификационния ред в нея) и групово вмъкване от файл (който е изходът от lucene), след което се присъединява към таблицата със съобщения. Беше много по-бързо.
Lucene не е перфектен и трябва да мислите малко извън полето на релационната база данни, защото НАПЪЛНО не е такъв, но е много, много добър в това, което прави. Заслужава си да се разгледа и, казаха ми, няма проблемите „упс, съжалявам, трябва да изградите отново индекса си“, каквито прави FTI на MS SQL.
Между другото, имахме работа с 20-50 милиона имейла (и около 1 милион уникални прикачени файлове), общо около 20 GB луценов индекс според мен и 250+GB SQL база данни + прикачени файлове.
Производителността беше меко казано фантастична - просто се уверете, че мислите и настройвате вашите фактори за сливане (когато слива индексни сегменти). Няма проблем да имате повече от един сегмент, но може да възникне ГОЛЯМ проблем, ако се опитате да обедините два сегмента, които имат по 1 mil елемента във всеки, и имате наблюдателна нишка, която убива процеса, ако отнеме твърде дълго... .. (да, това ни рита задника за известно време). Така че поддържайте максималния брой документи за нещо НИСКО (т.е. не го задавайте на maxint, както направихме ние!)
РЕДАКТИРАНЕ Кори Трейджър документира как да използвате Lucene.NET в BugTracker.NET тук.