To zależy od wymagań projektu i ogólnej architektury. Lucene, jak wiesz, jest biblioteką klasową, a nie samodzielną usługą, więc prawdopodobnie będziesz pisać kod, który używa biblioteki lucene, w .NET (C#) lub Java. Jeśli pozostała część projektu to .NET, rozsądniejsze może być korzystanie z portu Lucene.NET, mimo że znajduje się on za wersją Java. Z drugiej strony, jeśli potrzebujesz bardzo ogólnej funkcjonalności Lucene, możesz być w stanie używać SOLR jako samodzielnej usługi, a następnie używać usług sieci Web do łączenia się z Lucene z innych komponentów, takich jak usługi .NET, witryny internetowe itp. Nie ma dużej różnicy między wersjami Lucene.NET i Java, głównie poprawa wydajności i niektóre poprawki/zmiany w zapytaniach dotyczących zakresu, a także większa obsługa ładunków, ale są to głównie zaawansowane funkcje, których nie potrzebujesz. Używamy Lucene.NET 1.9 i jest bardzo stabilny i bardzo szybki dla nas. Mamy ponad 200 milionów dokumentów rozproszonych na około 8 indeksach.
Możesz znaleźć nowsze wersje biblioteki Lucene.Net, o których wspomina @adrianbanks w folderze "tags" w źródle SVN. Obecnie używamy tagu v2.4 i jak na razie działa poprawnie. – dthrasher