2010-11-08 4 views
12

Ich habe eine Index- und Suchanwendung mit Lucene-Bibliothek entwickelt. aber diese library hat in meinem kontext einige einschränkungen im kunden-ranking, abgesehen von ihrer leistung brauche ich skalierbarkeit und zugriff auf alle möglichen worthäufigkeiten usw. Gibt es eine leistungsfähige open source-volltextbibliothek?Was ist das beste Open-Source-Projekt für die Volltextsuche (.NET bevorzugt)?

+2

Ich habe festgestellt, dass die Leistung mit Lucene.net ist unglaublich, so ist es eine Überraschung zu hören, jemand sagen, sie haben Probleme mit der Leistung! (BTW, Lucene hat eine ziemlich gute API für benutzerdefinierte Scoring usw.) –

+0

Ich habe kein Problem mit der Leistung von Lucene, aber benutzerdefinierte Ranking ist so schwer. – Ehsan

Antwort

5

http://www.sphinxsearch.com

http://www.sphinxconnector.net/

Key Sphinx Merkmale sind:

  • hohe Indexierung und Leistung suchen;
  • erweiterte Indizierung und Abfrage-Tools (flexible und funktionsreiche Text Tokenizer, Abfrage Sprache, verschiedene Ranking-Modi, etc.);
  • Erweiterte Nachbearbeitung des Ergebnissatzes (SELECT mit Ausdrücken, WHERE, ORDER BY, GROUP BY usw. über Textsuchergebnisse);
  • bewährte Skalierbarkeit bis zu Milliarden von Dokumenten, Terabytes an Daten und Tausenden von Abfragen pro Sekunde;
  • einfache Integration mit SQL- und XML-Datenquellen sowie SphinxAPI-, SphinxQL- oder SphinxSE-Suchschnittstellen;
  • einfache Skalierung mit verteilten Suchen.

Um ein Bit, Sphinx zu Erweitern:

  • hohe Schaltgeschwindigkeit hat (bis zu 10-15 MB/sec pro Kern auf einem internen Benchmark);
  • hat eine hohe Suchgeschwindigkeit (bis zu 150-250 Abfragen/Sek. Pro Kern gegen 1.000.000 Dokumente, 1,2 GB Daten zu einem internen Benchmark);
  • hat eine hohe Skalierbarkeit (die größten bekannten Clusterindizes über 3.000.000.000 Dokumente, und die meisten belegten Spitzenwerte über 50.000.000 Abfragen/Tag);
  • bietet gute Relevanz-Ranking durch Kombination von Phrasen Proximity-Ranking und statistische (BM25) Ranking;
  • bietet verteilte Suchfunktionen;
  • bietet Dokumentauszüge (Schnipsel) Generation;
  • ermöglicht die Suche innerhalb der Anwendung mit SphinxAPI oder SphinxQL-Schnittstellen und von innerhalb von MySQL mit Pluggable SphinxSE Speicher-Engine;
  • unterstützt Boolean, Wortgruppe, Wortnähe und andere Arten von Abfragen;
  • unterstützt mehrere Volltextfelder pro Dokument (standardmäßig bis zu 32);
  • unterstützt mehrere zusätzliche Attribute pro Dokument (dh.Gruppen, Zeitstempel usw.);
  • unterstützt Stoppwörter;
  • unterstützt morphologische Wortformen Wörterbücher;
  • unterstützt das Token von Ausnahmen;
  • unterstützt sowohl Einzelbyte-Kodierungen als auch UTF-8;
  • unterstützt Stemming (Stemmer für Englisch, Russisch und Tschechisch sind eingebaut; und Stemmer für Französisch, Spanisch, Portugiesisch, Italienisch, Rumänisch, Deutsch, Niederländisch, Schwedisch, Norwegisch, Dänisch, Finnisch, Ungarisch, sind durch Bau dritten erhältlich Partei libstemmer-Bibliothek);
  • unterstützt MySQL nativ (alle Arten von Tabellen, einschließlich MyISAM, InnoDB, NDB, Archiv usw. werden unterstützt);
  • unterstützt PostgreSQL nativ;
  • unterstützt native ODBC-kompatible Datenbanken (MS SQL, Oracle, usw.);
  • ... verfügt über 50 weitere Funktionen, die hier nicht aufgeführt sind, siehe API und Konfigurationshandbuch!
Verwandte Themen