2010-11-08 10 views
12

Opracowałem indeks i aplikację do wyszukiwania z biblioteką Lucene. ale ta biblioteka ma pewne ograniczenia w rankingu niestandardowym w moim kontekście, poza jego wydajnością, potrzebuję skalowalności i dostępu do wszystkich rodzajów częstotliwości słów i itp. czy jest dostępna jakakolwiek potężna biblioteka pełnotekstowego z otwartym kodem źródłowym? CechyJaki jest najlepszy projekt open source do wyszukiwania pełnotekstowego (preferowany .NET)?

+2

Zauważyłem, że występ z Lucene.net jest niesamowity, więc zaskakujące jest to, że ktoś mówi, że ma problemy z wydajnością! (BTW, Lucene ma całkiem niezłe API do niestandardowej punktacji itp.) –

+0

Nie mam żadnego problemu z wydajnością lucenu, ale niestandardowy ranking jest tak trudny. – Ehsan

Odpowiedz

5

http://www.sphinxsearch.com

http://www.sphinxconnector.net/

Key Sphinx są:

  • wysoka wydajność indeksowania i wyszukiwania;
  • zaawansowane narzędzia indeksowania i kwerend (elastyczny i bogaty w funkcje tekstowy tokenizer, język zapytań, kilka różnych trybów rankingowych itp.);
  • zaawansowane przetwarzanie wyników wynikowych (WYBIERZ z wyrażeniami, GDZIE, ZAMÓWIENIE, GRUPA PRZEZ itd. Nad wynikami wyszukiwania tekstu);
  • sprawdzona skalowalność do miliardów dokumentów, terabajtów danych i tysięcy zapytań na sekundę;
  • łatwa integracja ze źródłami danych SQL i XML oraz interfejsami wyszukiwania SphinxAPI, SphinxQL lub SphinxSE;
  • łatwe skalowanie z wyszukiwaniem rozproszonym.

Aby rozwinąć trochę SPHINX:

  • ma wysoką szybkość zapisu do indeksowania (10-15 Mb/s na rdzeń na wewnętrznej odniesienia);
  • ma wysoką prędkość wyszukiwania (do 150-250 zapytań/sekundę na rdzeń wobec 1 000 000 dokumentów, 1,2 GB danych na podstawie wewnętrznego testu porównawczego);
  • ma wysoką skalowalność (największe znane indeksy klastrów ponad 3 000 000 000 dokumentów i najwięcej przerwań przekraczających 50 000 000 zapytań dziennie);
  • zapewnia dobrą klasyfikację trafności poprzez kombinację frazy ranking bliskości i ranking statystyczny (BM25);
  • zapewnia funkcje wyszukiwania rozproszonego;
  • zapewnia generowanie fragmentów dokumentów (snippets);
  • zapewnia wyszukiwanie z poziomu aplikacji za pomocą interfejsów SphinxAPI lub SphinxQL, a także z poziomu MySQL z włożonym silnikiem pamięci SphinxSE;
  • obsługuje boolean, frazę, słowo bliskość i inne typy zapytań;
  • obsługuje wiele pól pełnotekstowych na dokument (domyślnie up to 32);
  • obsługuje wiele dodatkowych atrybutów dla każdego dokumentu (np.grupy, sygnatury czasowe itp.);
  • obsługuje stopwords;
  • obsługuje morfologiczne słowniki słownikowe;
  • obsługuje wyjątki tokenizujące;
  • obsługuje zarówno kodowanie jedno bajtowe, jak i kodowanie UTF-8;
  • wspierają (wbudowane są programy macierzyste dla języka angielskiego, rosyjskiego i czeskiego, a programy macierzyste dla języka francuskiego, hiszpańskiego, portugalskiego, włoskiego, rumuńskiego, niemieckiego, holenderskiego, szwedzkiego, norweskiego, duńskiego, fińskiego, węgierskiego są dostępne po zbudowaniu trzeciego biblioteka party libstemmer);
  • obsługuje MySQL natywnie (obsługiwane są wszystkie typy tabel, w tym MyISAM, InnoDB, NDB, Archive itp.);
  • obsługuje PostgreSQL natywnie;
  • obsługuje natywnie bazy danych zgodne z ODBC (MS SQL, Oracle itp.);
  • ... ma ponad 50 innych funkcji niewymienionych tutaj, patrz instrukcja API i konfiguracji!
Powiązane problemy