Frage

Wir schaffen eine Open-Source- Twitter-Client und suchen nach einem Embedded DB mit dem kleinstem Raum möglich , die mit Delphi funktioniert und eignet sich gut für Volltextsuche (ich weiß, dass doesn‘ gehen t mit geringen Platzbedarf sehr gut). Im Idealfall sollte es auch frei oder Open-Source sein (anspruchsvolle ich weiß).

Ich bin Neigung in Richtung SQLite , aber ich habe es noch nie benutzt und nicht weiß, ob es unterstützt Volltextsuche, oder wie gut es funktioniert mit Delphi. Ich habe verwendet DBISAM vor, und es wird mit Volltextsuche eingebettet , aber nicht frei. Firebird ist eine weitere Option, die wir in Betracht gezogen.

Es könnte eine Kombination sein, die diese Arbeit macht. Was würden Sie verwenden, und wie funktioniert es für 1) Abdruck, 2) Volltextsuche, 3) Free / Open Source bewerten.

UPDATE: Vielen Dank an alle für Ihre Anregungen. So viele gute Möglichkeiten zur Auswahl.

War es hilfreich?

Lösung

Ich habe viel Erfolg hatte mit DiSQLite . Es hat FTS-Unterstützung und eine Menge anderer Features. Sie haben eine kostenlose Version und eine Professional-Version. Ich glaube, die Free-Version FTS auch der Fall ist. Ich habe viele der SQLite-Implementierungen für Delphi versucht, und dies ist die beste, die ich je gesehen habe. Es kompiliert direkt in Ihre Anwendung, so dass keine externen DLLs sind.

Ich habe auf einer Menge der freien Bibliotheken sieht es aus für Embedded-Datenbanken in Delphi und viele werden nicht mehr unterstützt, wurde nie veröffentlicht, oder nur in Delphi5 arbeiten.

Andere Tipps

Sybase Advantage Database Server eine passende lokale Server-Engine hat (Multi-Threaded und Rekordsperren), große Delphi TDataSet Nachkomme Komponenten (Quellcode enthielt) und eine große Volltext-Suchmaschine.

Vorteil Volltextsuche unterstützt AND, OR, NOT und NEAR-Betreiber. Vorteil bietet auch SCORE und SCOREDISTINCT skalare Funktionen, die die Gesamtzahl aller Instanzen von Worten in der Suchbedingung zurück.

Vorteil Volltextindizes werden auf Rekordaktualisierungszeit gehalten wird, die bedeutet, dass sie keine Umbauten erforderlich. Die Indizes sind in einem komprimierten Format; damit die tatsächliche Indexgröße viel kleiner ist als die physikalischen Daten sein. Es ist möglich, eine Volltextsuche auf nicht-indizierten Daten durchzuführen, aber dies erfordert eine körperliche Durchsuchung der Aufzeichnungsdaten und kann viel langsamer. Indizierte Suche verwendet Bitmap-Filter für optimale Leistung.

Die Online-Hilfe alle Details bis Indizierungsoptionen hat, etc .:

http://tinyurl.com/ctjoqg

Ich weiß, Firebird hat die Sphinx Add-on für die vollständige Textsuche (obwohl nach dort Website ist es weit von echten ‚Volltextsuche‘ 'ist), seine Free / Open Source, aber ich kann keine Informationen finden zu sagen, wenn es mit der integrierten Version von Firebird funktioniert.

Für Firebird Volltextsuche Blick auf: http://www.firebirdfaq.org/faq328/

Leonardo.

Wir haben DotLucene integriert in einem unserer internen Delphi-basierte Anwendungen, Hydra mit (Mike hat die Arbeit an, dass damals); wenn das eine Option ist, die wir hier verfolgen wollen, ich bin sicher, dass wir, dass extrahieren und für dieses Projekt wiederverwendbar machen

Gehen Sie weiter mit SQLite . Es gibt eine Menge freier SQLite-Komponenten für Delphi. Einige von ihnen haben aufgehört, aktiv Projekte. Aber eine Komponente Bemerkenswert ist ZeosDB . ZeosDB wird aktiv gepflegt und die SQLite-Unterstützung ist ebenfalls perfekt. Im Fall, dass Sie weitere Unterstützung DB-Engine, ZeosDB die Antwort ist wieder (es unterstützt MySQL, PostgreSQL, Interbase, Firebird, MS SQL, Sybase, Oracle und SQLite).

NexusDB hat einen kostenlos eingebettete Version und natürlich es ist eine native Delphi Produkt.

Hier ist eine Beschreibung davon ist Volltextsuche Umsetzung .

würde ich das DBISAM vorschlagen, oder jetzt wahrscheinlich ihre neuere ElevateDB sollte stark berücksichtigt werden. Aus Ihrer Erfahrung Ich erwarte, dass Sie wissen, dass es nicht viel Größe die ausführbare Datei hinzufügt, ist ziemlich schnell, zuverlässig, perfekt Delphi-basierte Lösung und eine hervorragende Unterstützung. Im Laufe der Jahre wurde ihr SQL-Dialekt so verfeinert, es ist jetzt sehr schön mit hohem ANSI SQL-2003-Compliance.

DBISAM / ElevateDB ist, wie Sie nicht Open Source beachten, aber die Lizenzkosten nur pro Entwickler (nicht pro Einsatz) so, wenn es nur wenige Entwickler beteiligt sind die Kosten (meiner Meinung nach) zu vernachlässigen. Lizenzkosten ist vor allem sinnvoll, wenn Sie die Höhe der Unterstützung und Ansprechbarkeit prüfen Sie auf DBISAM / Elevatesoft Newsgroups zu erhalten, wo der Hauptentwickler / Inhaber (Tim Young) Beantwortung von Fragen aktiv beteiligt ist und die Lösung von Problemen. Abgesehen von Kosten für eine proprietäre Lösung, gibt es natürlich auch die Sorge darüber, ob das Unternehmen überleben und Produkt wird auch weiterhin in der Zukunft entwickelt und unterstützt werden. Das ist etwas, das man für sich selbst wiegen, aber die Entwicklung scheint so stark wie eh und je. Sie haben für ihre db .NET-Provider bekommen, und unterstützen plattformübergreifende Entwicklung mit Freepascal / Lazarus.

Ein Plus an DBISAM der Volltextsuche ist, dass es fest in die SQL integriert ist. Das heißt, können Sie eine einzelne SELECT-Anweisung ausgeben, die direkt mit Volltext Suchkriterien auf andere gewöhnliche WHERE Kriterien auf einigen Feldern kombiniert. Je nach Bedarf, dies ist ein nettes Feature, dass es wirklich einfach und schnell macht einige Dinge zu tun, die mehr Arbeit mit einer anderen Volltext-Lösung nehmen würden. Ich denke, die meisten Add-on-Lösungen, wie Lucene und andere, die mit Firebird verwendet werden könnten, integriere nicht so eng mit regelmäßigen SQL und beschränken Sie nur einen Satz von Datensätzen mit Volltext Kriterien abgerufen werden. So etwas wie Textolution proprietäre Add-on für Firebird ( http://www.textolution.com/ftsib_example.asp ) sieht aus wie es einzelne komplexe (verschachtelte) Abfrage aufnehmen konnte erstellt, die sowohl reguläre als auch Volltext Kriterien gelten würden, aber DBISAM macht es elegant. Und das Hinzufügen einer proprietären Add-on zu einem Open-Source db Art von Niederlagen der Zweck der Open-Source geht, sowieso.

Ein Nachteil DBISAM / ElevateDB der Volltextsuche, glaube ich, ist, dass es unterstützt nur die Verwendung von ‚UND‘ und ‚ODER‘ Bedingungen, hat keine Nähe suchen.

Ich stelle fest, dass es eine Volltext-Lösung für SQLite ist, http: // www. sqlite.org/cvstrac/wiki?p=FullTextIndex . Ich habe noch nie SQLite verwendet, aber ich kenne eine Menge Leute es lieben. Ein Bereich, wo ich bin mir ziemlich sicher DBISAM / Elevatesoft hat großer Vorteil ist, in Multi-User-Anwendungen, bei denen robuste Verriegelungs Funktionalität erforderlich ist, auch wenn das nicht unbedingt ins Gewicht trägt überhaupt für Single-User-Desktop-Anwendung.

ich mit SQLite gehen würde mit Aducom Sqlite Komponenten, sind sie leicht mit SQLite zu arbeiten, als DiSQLite, kostenlos und arbeite als TDataset Komponenten, würde ich wählen Sie oben für sQLite, weil:

  1. Es ist sehr schnell und kompakt Datenbank.
  2. Sehr geringer Platzbedarf, nur um 200kb Dll.
  3. Es kann statisch verknüpft werden, wenn sie mit Aducom Komponenten verwendet, so dass die DLL keine Anforderungen für verteilen.
  4. Es wurde Unterstützung für Volltextsuche gebaut.
  5. Es ist wild gebraucht und in vielen freien und kommerziellen Anwendungen als externer Speicher verwendet.
  6. Es hat die meisten Standard-SQL, so dass die meisten Ihrer Kenntnisse in SQL verwendet werden.

SQLite ist so ziemlich einziger Benutzer / Einzel-Verbindung. Update Dadurch sperrt die gesamte Datenbank. Sie befassen sich mit diesem durch einen Timeout-Wert für andere Verbindungen Einstellung zu warten (Standard ist kein Timeout). Multi-User-Zugriff kann sehr langsam werden und / oder gibt häufig Timeout je nachdem, was Wert, den Sie verwenden.

Ich habe die Asqlite Komponenten von http://www.aducom.com/ verwendet. Freie und Open Source. Derzeit nicht D2009 von den Blicken unterstützen, aber es ist in der Entwicklung. Es gibt eine Reihe von anderen Komponentensätzen als gut, aber ich verwendet habe keine andere.

Sie können den Volltext hinzufügen zu jedem delphi App Rubicon (jetzt unter neuer Leitung Suche unter http: // www .href.com / rubicon ). Dies ist jedoch nicht frei: (

Warum würden Sie brauchen eine Volltextsuche für das? Ich benutze Twitter nicht, bu Ich glaube, twittern Meldungen sind 140 Zeichen max? Diese würden passen in ein varchar Feld. Sie haben keine Volltextsuche brauchen etwas in einem solchen Bereich zu finden.

Es gibt auch DotLucene, die das .NET Framework benötigt installiert werden, sondern kann einfach durch die .net com api geladen werden. Es ist ideal für die Suche und verfügt über eine Abfrage-Format, das auf den meisten Suchmaschinen üblich ist.

Ich habe eine semi-Arbeits Delphi Lösung hier: http://sourceforge.net/projects/mutis/ , ein Hafen zu Delphi von Lucene.

Die mayority davon funktionieren, aber unfortunally in der Tod Delphi.NET Umsetzung so requiere Arbeit basiert auf native ein aktualisieren (ja, war ein großer Fehler, die .NET-Route nehmen :()

DBISAM den ganzen Weg. Works, sehr solide, eingebettet ist, die Volltextindizierung funktioniert super (umfangreiche persönliche Erfahrung!)

ElevateDB ist prob auch toll, aber ich habe keine direkte Erfahrung mit ihm.

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