Lucene jest świetne. Bardzo elastyczny, zaskakująco szybki i solidny interfejs API. Lista mailingowa jest niezwykle pomocna.
Pliki wymagają trochę konserwacji, ale można to zrobić za pomocą dostarczonych narzędzi. Zasadnicze znaczenie ma optymalizacja indeksu przy okazji, ale jest to potrzebne tylko wtedy, gdy regularnie aktualizujesz indeks.
Proponuję również zajrzeć do Solr. Zasadniczo jest to aplikacja internetowa i narzędzia, które znajdują się na szczycie Lucene. Ułatwia to tworzenie nowych indeksów, ich optymalizację, a także synchronizację master/slave dla skalowalnego klastra wyszukiwania. To oczywiście zależy od rzeczywistych potrzeb.
Dla osobistego przykładu użyłem do utrzymania indeksu wyszukiwania dużej, dobrze znanej firmy zajmującej się grami. Indeks zawiera setki tysięcy wpisów w wielu językach (na całym świecie) i ustawień regionalnych. Codziennie wykonywał milion wyszukiwań w klastrze bez użycia prawie żadnego procesora i rozsądnej ilości pamięci. Testowano obciążenie na około 300 milionów wyszukiwań dziennie, na sprzęcie, który mieliśmy i skalowaliśmy liniowo, po prostu dodając więcej pudełek do programu śledzącego. Solr i Lucene były głównymi narzędziami do tego.
Jeśli I miałby wadę w postaci, byłaby to krzywa uczenia się. Jest sporo do zrozumienia, a jeśli chcesz naprawdę zoptymalizowane rozwiązanie, musisz je dobrze poznać. Jednak stanie się tak w przypadku każdego narzędzia wyszukiwania, którego używasz, jeśli zrobisz to sam. Dokumentacja, wiki i lista mailingowa zapewniają wiele wsparcia dla tego wzrostu.
To nie jest problem specyficzny dla lucenu, to samo dotyczy każdego systemu indeksowania. – bdargan