Używam bazy danych MySQL i korzystam z wyszukiwania opartego na bazie danych. Jakieś zalety i wady silników baz danych i wyszukiwarki Lucene? Chciałbym mieć sugestie dotyczące tego, kiedy i gdzie z nich korzystać?Wyszukiwarka Lucene kontra Wyszukiwarka baz danych
Odpowiedz
Proponuję przeczytać Full Text Search Engines vs. DBMS. Jedną linijką byłoby: Jeśli większość przypadków użycia to wyszukiwanie pełnotekstowe, użyj Lucene. Jeśli większość przypadków użycia to łączenia i inne operacje relacyjne, użyj bazy danych. Możesz użyć rozwiązania hybrydowego w bardziej skomplikowanym przypadku użycia.
Wyszukiwanie w Lucene ma zaletę indeksowania. This post może pomóc Ci zrozumieć lucene.
Myślę, że możemy również dodać indeks do tabeli bazy danych. ale nie mam pojęcia, co to jest? –
Zastosowanie Lucene kiedy chcesz indeksu tekstowych Dokumenty (o dowolnej długości) i szukać Tekst w tych dokumentach, wracając ranking dokumentów pasujący do zapytania. Klasycznym przykładem są wyszukiwarki, takie jak Google, które używają indeksu tekstowego, takiego jak Lucene, do indeksowania i wyszukiwania treści stron internetowych.
Zalety korzystania z Lucene nad bazą danych jak MySQL, do indeksowania i przeszukiwania tekstu są:
- dla dewelopera - narzędzia do analizy, analizowania i informacji indeks tekstowy (np wynikające, liczby mnogiej, synonimy, tokenizacja) w wielu językach. Lucene również skaluje się bardzo dobrze do wyszukiwania tekstu.
- dla użytkownika - wysokiej jakości wyniki wyszukiwania. Lucene używa bardzo dobrego similarity function (w celu porównania zapytania wyszukiwania z każdym dokumentem), którego sercem jest podobieństwo Cosinus i inverse Term/Document frequency. Skutkuje to dobrymi wynikami wyszukiwania z bardzo niewielkim wymaganiem do ulepszenia.
Partie useful info on Lucene here.
jest jakaś korzystniejsza alternatywa dla Lucene. Opensource lub owner (płatny lub REST API) –
Wykorzystaliśmy serwer Sql w pracy do wykonania niektórych zapytań, które wykorzystywały wyszukiwanie pełnotekstowe. W przypadku dużych ilości danych Sql dokonuje wewnętrznego sprzężenia między zestawem wyników zwróconym przez wyszukiwanie FullText, a resztą zapytania, które może być powolne, jeśli baza danych działa na maszynie o niskim poborze mocy (2 GB pamięci dla 20 GB danych). Zmiana tego samego zapytania na Lucene poprawiła znacznie prędkość.
Widziałem "przeszukaj naszą stronę" w wielu witrynach. Jeśli mam przeszukać zawartość stron, to co byłoby lepsze? –
Wyszukiwanie witryny to wyszukiwanie pełnotekstowe. Dlatego Lucene jest lepszy. Co więcej, użyj Solr: http://lucene.apache.org/solr/ –
@YuvalF, jeśli baza danych nie jest duża, a użytkownik tej strony nie jest zbyt liczny, czy pełne zapytanie DBMS jest wystarczające? ponieważ czasami, jeśli ten facet chce używać lucenu, musi sam to rozwinąć ... – hugemeow