Szukam autonomicznego serwera wyszukiwania pełnotekstowego o następujących właściwościach:
- Musi działać jako samodzielny serwer, który może obsługiwać żądania wyszukiwania od wielu klientów
- Musi być w stanie wykonać „indeksowanie zbiorcze” poprzez indeksowanie wyniku zapytania SQL: powiedz „WYBIERZ identyfikator, text_to_index Z dokumentów;”
- Musi być wolnym oprogramowaniem i musi działać w systemie Linux z MySQL jako bazą danych
- Musi być szybki (wyklucza wewnętrzne wyszukiwanie pełnotekstowe MySQL)
Znalazłem alternatywy, które mają te właściwości:
- Solr (na podstawie Lucene)
- ElasticSearch (również oparty na Lucene)
- Sfinks
Moje pytania:
- Jak oni się porównują?
- Czy przegapiłem jakieś alternatywy?
- Wiem, że każdy przypadek użycia jest inny, ale czy są pewne przypadki, w których zdecydowanie nie chciałbym używać określonego pakietu?
Odpowiedzi:
Używam Solr z powodzeniem od prawie 2 lat i nigdy nie użyłem Sfinksa, więc jestem oczywiście stronniczy. Jednak postaram się zachować obiektywizm, cytując dokumenty lub inne osoby. Zrobię też łatki do mojej odpowiedzi :-)
Podobieństwa:
Oto kilka różnic:
java -jar start.jar
). Sfinks nie ma dodatkowej konfiguracji.Powiązane pytania:
źródło
Jeśli nie musisz rozszerzać funkcji wyszukiwania w jakikolwiek zastrzeżony sposób, Sphinx jest najlepszym wyborem.
Zalety Sfinksa:
Zalety Solr:
źródło
Uwaga: jest wielu użytkowników, którzy myślą o tym samym pytaniu.
Aby odpowiedzieć na pytanie:
Które i dlaczego
Użyj Solr, jeśli zamierzasz używać go w swojej aplikacji internetowej (wyszukiwarka w przykładowej witrynie). Z pewnością okaże się świetny dzięki API. Zdecydowanie będziesz potrzebować tej mocy do aplikacji internetowej.
Użyj Sphinx, jeśli chcesz naprawdę szybko przeszukiwać mnóstwo dokumentów / plików. Indeksuje też bardzo szybko. Odradzam używanie go w aplikacji, która wymaga JSON lub parsowania XML, aby uzyskać wyniki wyszukiwania. Użyj go do bezpośredniego wyszukiwania dB. Działa świetnie na MySQL.
Alternatywy
Chociaż są to olbrzymy, jest ich o wiele więcej. Są też tacy, którzy używają ich do zasilania swoich niestandardowych ram. Powiedziałbym więc, że naprawdę niczego nie przegapiłeś. Chociaż istnieje jedno elastyczne wyszukiwanie, które ma dobrą bazę użytkowników.
źródło
Używam Sfinksa od prawie roku i to było niesamowite. Mogę zindeksować 1,5 miliona dokumentów w ciągu około minuty na moim MacBooku, a jeszcze szybciej na serwerze. Używam również Sfinksa, aby ograniczyć wyszukiwanie do miejsc w określonych szerokościach i długościach geograficznych, i to jest bardzo szybkie. Również sposób rankingu wyników jest bardzo drobiazgowy. Łatwy w instalacji i konfiguracji, jeśli czytasz samouczek lub dwa. Prawie 1.0 status, ale ich kandydaci do wydania byli niesamowicie solidni.
źródło
Lucene / Solr wydaje się być bardziej promowany i ma więcej lat w biznesie oraz znacznie silniejszą społeczność użytkowników. imho, jeśli uda ci się obejść problemy z początkową konfiguracją, ponieważ niektórzy wydają się mieć do czynienia (nie my), powiedziałbym, że Lucene / Solr jest najlepszym wyborem.
źródło