Frage

In einem unserer kommerziellen Anwendungen (Win32, geschrieben in Delphi) möchten wir Volltextsuche implementieren. Die Anwendung wird von Benutzerdaten in einer Art von Binär-Format zu speichern, die nicht direkt erkennbar als Text ist.

Im Idealfall würde Ich mag entweder eine In-Prozess-Lösung zu finden (DLL wäre OK) oder einen lokalen Server, die ich über TCP (vorzugsweise) zugreifen können. Die API soll mich erlauben, eine Textinformation an den Server zu übermitteln (zusammen mit den Metadaten, die den binären Blob es herkommt) und natürlich soll es mir erlauben, mit zumindest minimaler Unterstützung für logische Operatoren eine Volltextsuche zu tun und Teilzeichenfolge suchen. Unicode-Unterstützung erforderlich ist.

ich umfangreiche Liste von Suchmaschinen auf Stack-Überlauf ( gefunden Was sind einige Such Server da draußen? ), aber ich verstehe nicht wirklich, welche diese Motoren konnten meine Bedürfnisse befriedigen. Ich dachte an die Kollektive für Meinung zu fragen, bevor ich ein oder zwei Tage zu testen jeder von ihnen verbringen.

Irgendwelche Vorschläge?

War es hilfreich?

Lösung

Es gibt eine Reihe von Optionen auf dem Markt. Entweder vollständig kommerzielle Produkte oder Open-Source-Varianten flügge. Ihre Wahl eines Suchanbieter ist sehr abhängig von den Kunden Sie sind Targeting.

Microsoft hat eine kostenlose Express-Version ihrer Search Server. Soweit ich die Express-Edition weiß, ist begrenzt, um die Anwendungsebene auf einem Server ausgeführt wird.

Es gibt auch die Apache Lucene Projekt, das Open-Source ist. Es hat eine schöne API, und eine große Gemeinschaft von Nutzern leicht zu bedienen ist. Das ursprüngliche Projekt basiert auf Java, aber es gibt auch andere Implementierungen wie NLucene für .NET, die ich persönlich in Anspruch genommen haben.

Andere Tipps

Ich würde empfehlen, einen Blick auf SQLite mit -. Volltextsuche ist in der aktuellen Version enthält

Ich nehme an, die Antwort auf Ihre db abhängt. Zum Beispiel SQL Server Volltextsuche und englischen Sprachabfragen auch wenn überhaupt benötigt wird.

Werfen Sie einen Blick auf PostgreSQL und tsearch verwendet wird.

Versuchen Sie postgresql mit mit tsearch

Sphinx ist wahrscheinlich die effizienteste und skalierbare Option während SQLite - FTS3 die einfachste Option ist

.

Während nicht im Prozess, Solr sehr schnell ist (basierend auf Lucene) und leicht zugänglich von jeder Plattform (HTTP)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top