Jestem zainteresowany uruchomieniem Lucene.NET dla aplikacji działającej w klastrach Windows. Sam problem wyszukiwania jest dość mały, ale problem z statystyką/klastrem wciąż musi zostać rozwiązany.Opcje klastrowania Lucene.NET?
Rozumiem, że SOLR obsługuje mój scenariusz (i więcej), ale wymaganie kontenera serwletów (i Java) stwarza dla mnie pewne problemy. W zależności od złożoności podejścia opartego na Lucene.NET nadal może to być opcja z fiolką.
Moje pytanie brzmi, jakie opcje mam dla obchodzenia problemu działa na wielu hostach:
Utrzymują się na wspólnej pamięci, wspólne dla wszystkich węzłów? Czy kontroler Lucene.NET będzie obsługiwał współbieżność w sposób przejrzysty? Czy serwery używają pamięci RAM do buforowania, a jeśli tak, to czy Lucene.NET unieważnia to w oparciu o zaktualizowane pliki w przejrzysty sposób?
Replikacja? Każdy serwer ma własną kopię wszystkiego, czego potrzebuje. Przy każdej aktualizacji wszystkie serwery otrzymują nową replikę (lub różnicę, jeśli jest to stosunkowo proste). Istniejące narzędzia do tego, lub do mnie do obsługi?
Podział/podział obciążenia pracą? Każdy serwer obsługuje tylko własne dane, zarówno dla odczytów, jak i aktualizacji. Narzędzia do obsługi tego, łączenia częściowych wyników itp.?
Inne opcje, które mogłem pominąć podczas mojego wstępnego dochodzenia?
Podczas eksperymentów z lokalną wersją, mój katalog Lucene był w porządku kilkuset megs. Na dłuższą metę widzę prawdopodobnie 1-5 GB. Jeśli częstotliwość aktualizacji jest trudna, mogę to dość elastycznie kontrolować. Przewiduje się, że jednoczesne obciążenia odczytu/wyszukiwania będą bardzo umiarkowane.
Nie jest to bezpośrednia odpowiedź, ale przyjrzyj się elasticsearch (http://www.elasticsearch.org/) - z łatwością poradzi sobie z większością potrzeb. – Mikos
Jakie, jeśli w ogóle, wymagania dotyczą synchronizacji danych między członkami klastra? Jesteśmy w trakcie wdrażania klastra Lucene.NET na dużą skalę i być może będę w stanie dostarczyć wskazówek, jeśli lepiej zrozumiem twoją sytuację. –