2010-12-30 15 views
6

Zastanawiam się nad wykorzystaniem Lucene w moim projekcie do bardzo szybkiego wyszukiwania. Wiem, że Lucene tworzy własne pliki, w których przechowuje wszystkie dane/indeksy.Jakie są wady korzystania z Lucene?

Zastanawiam się, jakie są wady korzystania z Lucene? Czy są jakieś?

Czy musisz zrobić cokolwiek z bazą danych plików lub czy działa dobrze bez jakiejkolwiek pomocy z zewnątrz?

P.S. Wiem, że jest też Lucene .NET i założę się, że obowiązują tam te same zasady.

Odpowiedz

9

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.

2

Mam ograniczone doświadczenie z Lucene, ale jak dotąd było świetnie. Wady widzę są głównie z perspektywy biznesu:

  1. muszę aktywnie uczynić sprawę do przy użyciu Lucene do mojego szefa, domyślnie będziemy używać SQL Server. Aby dokonać przełącznika będę musiał udowodnić bez wątpliwości, że Lucene działa lepiej (i nie tylko podobne) dla przypadku użycia mamy przypadku mamy. Domyślam się, że ten przechodzi do "Nikt nigdy nie został zwolniony za zakupu syndromu sprzętu IBM.
  2. Trwające prace rozwojowe/poprawki błędów dla Lucene.Net w szczególności są wątpliwe w tym punkcie , znowu trudniejsze sprzedać bez tego. Mam nadzieję, że społeczność będzie mogła zebrać się w rajdzie .
2

Lucene wykonuje świetną pracę dla many people and companies. Twój przebieg może się jednak różnić. Możliwym problemem jest model punktacji Lucene - używa kombinacji TF/IDF i punktacji boolowskiej, podczas gdy inne narzędzia IR używają probabilistycznego BM25, który jest silniejszy. Jednak możesz pracować z Lucene od lat, a wyniki wyszukiwania będą wystarczająco dobre. Skalowanie do wielu milionów dokumentów nie jest łatwe.

Sprowadza się to do konkretnego przypadku użycia. Najlepiej jest rozpocząć test używając Solr i sprawdzić, czy wydaje się pasować do twoich potrzeb.

2

Lucene ma problem z skalowalnością. Jego wydajność pogarsza się, gdy indeks staje się coraz większy.

+1

To nie jest problem specyficzny dla lucenu, to samo dotyczy każdego systemu indeksowania. – bdargan

Powiązane problemy