Wyszukiwanie pełnotekstowe za pomocą Rails

Szukałem wtyczek / klejnotów dla Rails. Większość artykułów porównuje fretkę (Lucene) do Ultrasphinx lub ewentualnie myślącego Sfinksa, ale żaden z nich nie mówi o wyszukiwarce. Czy ktoś ma jakieś wskazówki jak to porównać? Czego używasz i jak to działa?

Author: Matt Grande, 2009-07-15

7 answers

  • Thinking_sphinx i sphinx działają pięknie, bez indeksowania, zapytań, problemów z instalacją (5 lub 6 instalacji, w tym produkcja slicehost )

  • Dlaczego wszyscy nie używają sphinx, jak np. craigslist? przeczytaj tutaj o jego ograniczeniach (półtora roku starych artykułów. Programista sphinx, Aksyonoff, pracuje nad nimi i wprowadza funkcje i niezawodność oraz usuwa błędy w niesamowitym pace)

Http://codemonkey.ravelry.com/2008/01/09/sphinx-for-search/

Http://www.ibm.com/developerworks/opensource/library/os-php-apachesolr/

Porównanie Wyszukiwarki pełnotekstowej-Lucene, Sphinx, Postgresql, MySQL?

  • Fretka: łatwa instalacja, nie działa poprawnie, bardzo wolne indeksowanie (jeden mysql db: 3 sekundy, fretka: 50 minut). Dobrze udokumentowane problemy (korupcja indeksów) w serwerach drb w produkcja pod obciążeniem. Mimo to, używam go w develometn od acts-as_ferret pojawił się 3 lata temu i dobrze mi służył. Nie przestrzeganie stemingu Portera jest zaletą w niektórych kontekstach.

  • Lucene i Solr jest gorilla / mack truck / heavyweight champ open source search. Zespoły wykonały imponującą liczbę nowych funkcji w wydaniu solr 14:

  • Acts-as-solr: działa dobrze, gdy tomcat lub jetty jest na miejscu, ale to czasem jest bolesne. Głównym widelcem jest widelec A-A-S autorstwa mattmatta, ale projekt jest stosunkowo niezabezpieczony.

  • Re instalacja tomcat: SOLR / lucene ma bez wątpienia najlepszą bazę wiedzy / wyszukiwarkę wsparcia dowolnego pakietu oprogramowania, jakie widziałem( chyba nie jestem zaskoczony), pole wyszukiwania TUTAJ:

Http://www.lucidimagination.com/

  • Sunspot NOWY ruby wrapper, zbudowany na solr-ruby. Wygląd obiecujące, ale nie mogłem go zainstalować na OSX. Indeksuje wszystkie obiekty ruby, a nie tylko bazy danych przez AR

  • Jedna rzecz, która jest naprawdę pouczająca, to zainstalować 2 wtyczki wyszukiwania, np. sphinx i SOLR, sphinx i ferret, i zobaczyć, jakie różne wyniki zwracają. To tak proste jak @sphinx_results - @ferret_results


Właśnie zobaczyłem ten post i odpowiedzi

Http://zooie.wordpress.com/2009/07/06/a-comparison-of-open-source-search-engines-and-indexing-twitter/

Http://www.jroller.com/otis/entry/open_source_search_engine_benchmark

Http://www.flax.co.uk/blog/2009/07/07/xapian-compared/

 27
Author: Gene T,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:25:02

Po pierwsze, moje oczywiste uprzedzenie: stworzyłem i utrzymałem myślenie Sphinx.

Tak się składa, że widziałem Bena Johnsona (twórcę SearchLogic) obecnego na NYC Ruby meet o tym wczoraj wieczorem. SearchLogic jest tylko SQL - więc jeśli nie masz do czynienia z ogromnymi tabelami, a rankingi trafności nie są potrzebne, to może to być dokładnie to, czego szukasz. Składnia też jest całkiem czysta.

Jeśli jednak chcesz, aby cała inteligencja zapytań była obsługiwana przez kod, który nie jest twoim własnym, wtedy Sphinx lub Solr (czyli chyba Lucene pod maską) będzie chyba lepiej.

 18
Author: pat,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-16 03:17:09

SearchLogic to dobra wtyczka, ale naprawdę ma na celu uczynienie kodu wyszukiwania bardziej czytelnym, nie zapewnia automatycznego indeksowania, które robi Sphinx. Nie używałem fretki, ale Sphinx jest niesamowicie potężny.

Http://railscasts.com/episodes/120-thinking-sphinx

Świetny wstęp, aby zobaczyć, jak elastyczny jest.

 5
Author: Mark S.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-15 16:02:24

Nie używałem SearchLogic, ale mogę powiedzieć, że Lucene jest bardzo dojrzałym projektem, który ma implementację w wielu językach. Jest szybki i elastyczny, a interfejs API jest przyjemny w pracy. To dobry zakład.

 3
Author: Vincent,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-15 15:58:03

Biorąc pod uwagę, że to pytanie jest nadal wysoko oceniane w google za Wyszukiwanie pełnotekstowe, naprawdę chciałbym powiedzieć, że Sunspot jest jeszcze silniejsze dzisiaj, jeśli jesteś zainteresowany dodaniem funkcji wyszukiwania pełnotekstowego do aplikacji Rails(i chciałbyś mieć Solr za sobą). Możesz sprawdzić pełny samouczek na ten tutaj.

A skoro już o tym mowa, kolejnym konkurentem, który pojawił się w polu jest ElasticSearch , który ma na celu wyszukiwanie pełnotekstowe w czasie rzeczywistym silnik zbudowany na bazie Lucenu (ale robi to inaczej w porównaniu z Solr). ElasticSearch zawiera Out-of-the-box sharding i replikacji do wielu węzłów, Szybsze wyszukiwanie w czasie rzeczywistym, "perkolatory", aby umożliwić otrzymywanie powiadomień, gdy coś, co pasuje do kryteriów staje się dostępne i porusza się naprawdę szybko z wielu innych funkcji. Łatwo jest zbudować coś na nim, ponieważ API jest martwe proste i całkowicie oparte na REST używając JSON jako formatu. Można powiedz, że nawet nie potrzebujesz wtyczki, aby z niej korzystać.

 3
Author: Maurício Linhares,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-08-06 06:54:37

Osobiście nie zawracam sobie głowy agnostyką baz danych dla aplikacji internetowych i jestem całkiem zadowolony z korzystania z wyszukiwania pełnotekstowego w pg83. Zaletą jest to, że jeśli i kiedy zmienisz swój framework/język, nadal będziesz mieć wyszukiwanie pełnotekstowe.

 1
Author: Omar Qureshi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-07-16 19:44:22

Dla każdego, kto szuka prostego gem wyszukiwania bez żadnych zależności, sprawdź acts_as_indexed

 0
Author: David Mihal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-07-19 18:05:56