Bez wchodzenia w długi temat, który prawdopodobnie nie pasowałby na forum programistyczne, postaram się omówić to w zasadzie, ale nadal spróbuję omówić punkty.
Najważniejszą rzeczą do rozważenia przy przechodzeniu do ogólnego porównania jest to:„Jak wypada wyszukiwanie pełnotekstowe przez silnik relacyjnej bazy danych „XYZ” w porównaniu z Lucene” .
Więc jeśli to rozważysz i masz doświadczenie z wbudowanymi funkcjami „pełnego tekstu” tych produktów, to są to jabłka, które powinnaś porównać z jabłkami MongoDB "pełnotekstowymi".
Krótko mówiąc, MongoDB oferuje podstawowe możliwości pełnego tekstu, niewiele różniące się od tych, które można znaleźć w produktach relacyjnych. Jak wspomniano w a:) , obiekty są nowe, ale lepsze niż to, co było wcześniej, czyli nic.
Na b:) , Lucene i pochodne / odpowiedniki (Solr / ElasticSearch, itp.) powinny być traktowane jako zupełnie inne zwierzę. Gdzie potrzebujesz zaawansowane tokenizowanie i stemming, wbudowane funkcje „Więcej takich” i liczba aspektów na wyszukiwaniach. W takich przypadkach wymagany jest oddzielny produkt.
Oczywiście istnieje kilka rozwiązań do indeksowania danych ze sklepów MongoDB w Lucene itp., a nawet dostosowanie tego procesu nie jest trudne. Ale jest to utrzymanie kolejnej ruchomej części w Twojej infrastrukturze.
Więc tak naprawdę nie widzę w tym potrzeby porównywania Wyszukiwanie tekstowe MongoDB z Lucene, ponieważ ostatecznie istnieją po to, by robić różne rzeczy, to tylko kwestia tego, czego potrzebujesz dla twojej aplikacji. Wybierz rozwiązanie, które jest dla Ciebie najlepsze.
Jedyną rzeczą do dodania jest to, że rodzina Lucene (i pochodne) to świetne produkty. Nie wahaj się dać im szansę, przynajmniej do oceny. Wcześniejsze punkty wskazują, że jest tam o wiele więcej mocy niż jakiekolwiek „standardowe wyszukiwanie tekstowe w bazie danych”. Co więcej, administracja i krzywa uczenia się są generalnie „nie tak trudne, jak myślisz”. Pobaw się, może warto wdrożyć.