2008-09-17 17 views
2

In einer unserer kommerziellen Anwendungen (Win32, in Delphi geschrieben) möchten wir die Volltextsuche implementieren. Die Anwendung speichert Benutzerdaten in einer Art Binärformat, das nicht direkt als Text erkennbar ist.So implementieren Sie die Volltext-Volltext-Suchmaschine

Idealerweise würde ich gerne eine In-Process-Lösung (DLL wäre OK) oder einen lokalen Server finden, auf den ich über TCP (vorzugsweise) zugreifen könnte. Die API sollte es mir ermöglichen, eine Textinformation an den Server zu senden (zusammen mit den Metadaten, die das binäre Blob darstellen, aus dem es stammt), und natürlich sollte es mir erlauben, eine Volltextsuche mit zumindest minimaler Unterstützung für logische Operatoren durchzuführen und Teilstringsuche. Unicode-Unterstützung ist erforderlich.

Ich fand umfangreiche Liste von Suchmaschinen auf Stack Overflow (What are some Search Servers out there?), aber ich verstehe nicht wirklich, welche dieser Motoren meine Bedürfnisse erfüllen konnte. Ich dachte daran, The Collective um Stellungnahme zu bitten, bevor ich einen oder zwei Tage damit verbrachte, jeden von ihnen zu testen.

Irgendwelche Vorschläge?

Antwort

1

eine Reihe von Optionen auf dem Markt sind. Entweder vollständig kommerzielle Produkte oder Open-Source-Varianten. Ihre Wahl eines Suchanbieters hängt sehr stark von den Kunden ab, auf die Sie abzielen.

Microsoft hat eine kostenlose Express-Version ihres Suchservers. Soweit ich weiß, beschränkt sich die Express-Edition darauf, die Anwendungsebene auf einem Server auszuführen.

Es gibt auch das Apache Lucene Projekt, das Open Source ist. Es hat eine nette API, die einfach zu bedienen ist und eine große Gemeinschaft von Benutzern. Das ursprüngliche Projekt basiert auf Java, aber es gibt auch andere implementations wie NLucene für .NET, die ich persönlich verwendet habe.

0

Ich würde empfehlen, sich SQLite anzusehen - die Volltextsuche ist in der neuesten Version enthalten.

0

Ich nehme an, die Antwort hängt von Ihrer db ab. Zum Beispiel hat SQL Server Volltextsuche und auch Englisch-Sprachabfragen, wenn sie jemals benötigt werden.

0

Schauen Sie sich PostgreSQL und tsearch an.

0

Versuchen postgresql mit mit TSearch

0

Sphinx ist wahrscheinlich die effizienteste und skalierbarste Option, während SQLite - FTS3 die einfachste Option ist.

0

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

Verwandte Themen