7

Firebirdデータベースに全文検索を実装することを検討しています。要件は次のとおりです。

  1. 複数のテーブルのすべてのフィールドにインデックスを付ける必要があります。結果が見つかると、元のテーブルを見つけることができるはずです。
  2. インデックスは、データベースまたはファイルシステムに保存できます。
  3. 検索結果(BigInt主キー)を使用して、データベース内の元のレコードと結合し、レコードをテーブルに表示する必要があります。

誰かが私たちが必要とするものを達成するためのまともな方法をお勧めできますか?どういうわけかDotLucenceをDelphiに統合することを検討しましたが、それを実行する方法についてはあまり多くの情報を見つけることができません。

4

2 に答える 2

12

考慮すべきいくつかのリソースを次に示します。

  • Sphinxは非常に強力で人気のある無料のオープンソース全文検索エンジンです。
  • TextolutionInterbaseおよびFirebirdの全文検索。
  • IBObjects全文検索(「あいまい検索」)モジュール。検索インデックスを設定したり、独自のカスタム実装のモデルとして使用したりできる、完全に機能するモジュールです。
  • Rubiconは、アプリケーションに全文検索機能を組み込むことができるDelphiアドオンです。
  • DotLucene全文検索エンジンを使用したCodeProjectのDanLeteckyによるFirebirdSQLの全文検索。
  • Mutisは、Lucene検索エンジンのDelphiポートです。優れたパフォーマンスでテキストベースの情報のインデックス作成、カタログ化、検索を行うための柔軟なAPIを提供します。カスタム検索エンジンの実装、調査、テキスト検索、データマイニングなどに最適です。

RedSoftという会社によって作成されたFirebirdコードのフォークがあります。Firebirdと同じライセンスでライセンスされているため、JavaVMインターフェイスを介してLuceneエンジンを使用した全文検索をサポートできるバージョンを確認できます。

また、第4回Firebird Conferenceで発表された、BjoernReimerとDirkBaumeisterによる「全文検索エンジンを使用しないFirebirdでの全文検索」というタイトルの論文を読むこともできます。

于 2009-06-04T20:22:43.093 に答える
-1

要件2で問題が発生すると思います。インデックスはデータベースまたはファイルシステムに保存できます。ほとんどのインデックスサービスは、高度に最適化された方法でデータを保存する独自のインデックスファイルを作成します。本当に必要な場合は、インデックスを単一のBLOBフィールドにロードして保存することは可能かもしれませんが、その理由はわかりません。

于 2009-06-05T07:34:28.193 に答える