Próbuję podjąć decyzję w sprawie technologii wyszukiwania/indeksowania open source dla projektu .Net. Wygląda na to, że standardem dla projektów Java jest Lucene, ale jeśli chodzi o .Net, projekt Lucene.Net wydaje się być dość nieaktywny. Czy to nadal najlepsza opcja? Czy istnieją inne opłacalne alternatywy?Jaka jest najlepsza i najbardziej aktywna technologia wyszukiwania w technologii .NET typu open source?
Odpowiedz
Chociaż nie były one wydaniami "pełnowartościowymi" (tj. pełna dokumentacja, aktualizacje strony internetowej) Lucene.Net od dłuższego czasu, wciąż są nowe zatwierdzenia do jego repozytorium SVN. Na przykład najnowsze wydanie (2.3.2) zostało oznaczone jako 07/24/09 (see here). Ponieważ rozwój jest nadal aktywny, użyłbym go do nowych projektów wyszukiwania pełnotekstowego.
W pewnym sensie pomyślałem, że to będzie odpowiedź. Lucene.Net to jest wtedy. Dzięki wszystkim! – jamesaharvey
Spójrz na www.searcharoo.net. Posiada przeszukiwacz i funkcje takie jak praca, indeksowanie dokumentów biurowych/plików PDF. Autor jest bardzo aktywny w artykułach codeproject i dość szybko odpowiada na pytania.
lucene.net będzie koniecznie opóźniać wersję Java, ponieważ jest portem. Nie podoba mi się również, że port luceński jest prostym egzemplarzem, chociaż ułatwia to dokumentom, które przypuszczam. Coś do rozważenia jest przy użyciu Solr, jeśli nie potrzebujesz super ścisłej (binarnej) integracji. Użyłem go wcześniej z dobrym skutkiem. Nadal jest zasilany przez Lucene, ale myślę, że jest lepszy, ponieważ ma kilka lepszych funkcji. Możesz go używać z domeny .NET za pośrednictwem punktu końcowego HTTP.
Jedno pytanie, które należy zadać sobie, to to, czego naprawdę potrzebujesz/chcesz w rozwiązaniu wyszukiwania. Istnieje wiele sposobów na wdrożenie wyszukiwania, a nie wszystkie rozwiązania działają w każdej sytuacji.
Chociaż jej nie .net polecam użyciu Solr jako jego zbudowany na Lucene i będzie prosty do integrują biorąc pod uwagę fakt, że zwraca XML/HTTP i JSON
SQLite ma FTS3 (Full Text Search 3), które mogą rób to, co chcesz. Nie mam bezpośredniego doświadczenia z tym, ale uważam, że został opracowany wyraźnie, aby robić to, co robi Lucene, przynajmniej w tym prostym przypadku. Nie wierzę, że możesz zmienić tokenizm lub cokolwiek (bez modyfikowania kodu źródłowego), ale jest to opcja.
Używamy SQLite FTS w naszym produkcie i jest bardzo dobry i znacznie szybszy niż Lucene.NET w naszych szczególnych przypadkach. –
wiem nie jest open-source, ale jest to darmo i bardzo kompleksowe propozycja od firmy Microsoft:
Microsoft Search Server 2008 Express
Out-of-the- trafność pudełka.
Zlokalizowany interfejs.
Rozszerzalne wyszukiwanie.
Brak ustawionych limitów dokumentów.
Ciągłe indeksowanie propagacji.
out-of-the-box złącza indeksujące
streszczenia treści.
Podświetlanie hitów.
Najlepsze zakłady i definicje.
Korekta zapytania.
Duplikat zwijania.
Filtruj według nieruchomości.
Filtruj według języka.
Sortuj według daty.
E-mail/powiadomienia RSS
Jednak limit rozmiaru DB jest łatwo osiągalny, jeśli zamierzasz użyć tego dla indeksu wyszukiwania. Nie jest również przeznaczony głównie do indeksowania tekstów i podczas indeksowania tekstu może działać raczej słabo w porównaniu do czegoś w rodzaju lucenu. –
Interesujące - nie wiedziałem, że MS zrobił taki produkt. – RichardOD
ms szukaj ... fuj! – ADAM
Jak rozumiem, trzeba „tylko” indeksu pełnotekstowego na istniejącej bazie danych i SQL Server wyszukiwanie pełnotekstowe w zasadzie pracował dla ciebie, ale Twoja obecna implementacja/konfiguracja jest zbyt wolna.
Gdybym był tobą, nie wybrałbym zupełnie innego podejścia (pomyśl tylko o bałaganie, aby zewnętrzny indeks był zsynchronizowany z twoją bazą danych, lub dołącz wyniki zapytania z obu itd.). Spróbuj rozwiązać problem z wydajnością w SQL Serverze, ponieważ nikt nie podejrzewałby poważnie, że 6sec do wyszukiwania 7k wierszy jest ostatnim słowem dla rozwiązania klasy korporacyjnej używanego w jednych z największych baz danych ... Może postaraj się zadać nowe pytanie o typowych pułapkach z tą funkcją (nie jestem ekspertem w tej dziedzinie), a możesz skończyć z prostą poprawką, zamiast kompletnego przebudowania architektury wyszukiwania;)
Jeśli naprawdę nie nalegasz na .Net, możesz spróbować Sphinx. Open source i dostępne dla wszystkich platform (Windows/Linux).
Lucene.net jest zaimplementowany w nHibernate, więc jeśli szukasz również programu odwzorowującego O/R, kombinacja może być warta głębszej kontroli.
Obecnie tworzymy prototyp i konfigurujemy Lucene wykonuje się w kilka minut (używamy płynnego nhibernate).
Próbuję również dać NHibernate. Dzięki za informację. – jamesaharvey
Po użyciu Lucene.Net w kilku projektach, chciałbym dodać sugestię kompilacji wersji lucene w Javie do kodu .net z IKVM.NET. Działa wspaniale i nigdy nie musisz się martwić o bycie nieaktualnym w odniesieniu do wersji Java. Możesz także skompilować wszystkie dodatkowe biblioteki i używać ich również (używam plików wyszukiwania GIS w jednym projekcie).
Czy myślałeś o stworzeniu do tego projektu codeplex? Może ustawiam okresową kompilację – Mikos
+1 dla tej oczywistej, ale łatwo przeoczonej opcji, biorąc pod uwagę Lucene.NET. Jeszcze o tym nie myślałem; czy napotkaliście jakieś przeszkody, które mogłyby utrudnić to sklepom spoza Javy lub czy korzystanie z IKVM w przypadku projektu o takim rozmiarze jest tak łatwe, jak mogłoby się wydawać? –
@Mikos - całkiem sprytny pomysł; w przypadku, gdy okaże się to wykonalne w przypadku projektu wielkości Lucene, może to być dobrym precedensem dla tego podejścia - czy takie podejście jest już powszechne, a ja właśnie tęskniłem? –
Użyłem DotLucene, ale napotkałem na wiele problemów. jednym z głównych był fakt, że wymagało pełnego zaufania do uruchomienia.
mam od przeniósł się do korzystania SearchAroo: http://www.searcharoo.net/
to wykorzystuje przechowywania danych XML i znalazłem jego wydajność jest bardzo podobny do kropki Lucene.
Jeśli szukasz innej opcji, zdecydowanie popatrzę.
- 1. Jaka jest najlepsza biblioteka open source Pythona do rysowania wykresów?
- 2. Jaka jest najlepsza technologia do rysowania drzew i wykresów?
- 3. Technologia Push: Czy jest jakaś implementacja open source dla systemu Windows
- 4. Aplikacje iPad typu open source
- 5. Datamining oprogramowania typu open source
- 6. Implementacje typu gravatar typu open source?
- 7. Jaka jest twoja ulubiona biblioteka open source lub darmowa biblioteka dla .NET Charts i Gauges?
- 8. Czy jest jakiś open source ddk Open Source dla Androida?
- 9. Jaka jest procedura uczestniczenia w projekcie Open Source?
- 10. Jaka jest najlepsza implementacja wspólnego selekcji open source, która działa z Eclipse?
- 11. Polecam bibliotekę statystyczną Open Source .NET
- 12. Jaki jest najlepszy projekt open source do wyszukiwania pełnotekstowego (preferowany .NET)?
- 13. Open-source biblioteka zip dla .NET?
- 14. Open source OCR
- 15. Jakiej technologii wyszukiwania używać w ASP.NET?
- 16. Jaka jest najlepsza opcja wyszukiwania w Ruby on Rails?
- 17. Najlepsza sieć open-source z płynnym, nieskończonym przewijaniem
- 18. . Netowe produkty klastra typu open source? ... jak Terracotta
- 19. Biblioteka układów grafów Open Source
- 20. Anonimowe składki i współautorzy projektów Open Source
- 21. Open Source SharePoint?
- 22. Open source interpreter PostScript
- 23. Co to jest aktualny analog technologii COM?
- 24. Open Source Metadata Management Tool
- 25. Jaki jest projekt Open source Node.js CI?
- 26. Ideatorrent open source alternative
- 27. Technologia zaplecza dla technologii front-end, takich jak Twitter Bootstrap
- 28. Czy są dostępne skalowalne systemy przechowywania plików typu open source?
- 29. Jaka jest najlepsza alternatywa dla int.TryParse dla .net 1.1
- 30. Pytania o odpowiedzi na pytania typu Open Source
+1: Naprawdę jestem tym zainteresowany. Próbowałem przejść przez proces używania procesora indeksowania pełnego tekstu SQL Server. Działa dobrze z wyszukiwaniem plików binarnych, takich jak pdf, doc, etc; ale podczas wyszukiwania w zwykłych kolumnach powolny jest pies. 6 sekund na przeszukiwanie tabeli rzędu 7000 jest moim zdaniem niedopuszczalne. Na razie używam prostych LIKE "value%", które bardzo szybko wracają. – NotMe