2009-06-04 15 views
7

Firebirdデータベースでの全文検索の実装を検討しています。私たちの要件は次のとおりです。FirebirdとDelphiでのフルテキスト検索

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

私たちが必要とするものを達成するための適切な方法をお勧めしますか?私は何とかDotLucenceをDelphiに統合してみましたが、どうやってそれをどうやって進めるのかについての情報はほとんど見つかりません。ここで

答えて

12

はあなたが考慮するためのいくつかのリソースです:

  • Sphinx非常に強力で人気のある無料のオープンソースの全文検索エンジン。
  • Textolution InterbaseとFirebirdのフルテキスト検索。
  • IBObjectsフルテキスト検索(「ファジー検索」)モジュール。完全に動作するモジュールで、検索インデックスの設定や独自のカスタム実装のモデルとして使用できます。
  • Rubiconは、フルテキスト検索機能をアプリケーションに組み込むことができるDelphiのアドオンです。
  • Fulltext Search for Firebird SQL By Dan Letecky CodeProjectでDotLuceneフルテキスト検索エンジンを使用しています。
  • Mutisは、Lucene検索エンジンのDelphiポートです。インデックス、カタログ、検索用の柔軟なAPIを提供し、優れたパフォーマンスでテキストベースの情報を提供します。カスタム検索エンジンの実装、リサーチ、テキスト検索、データマイニングなどのためのExcelent

Red Softという会社のfork of Firebirdコードがあります。 Firebirdと同じライセンスでライセンスされているので、JavaVMインターフェース経由でLuceneエンジンを使ってフルテキスト検索をサポートできるバージョンを見ることができます。

第4回Firebird Conferenceで発表されたBjoern ReimerとDirk Ba​​umeisterの論文「Full text search in Firebird without a full text search engine」も読んでいただけます。

+1

ジム! – gabr

+0

ありがとうございます。私はそれらのほとんどを見てきましたが、Mutisは見つけられませんでした。私は今ダウンロードしています。 BTW、TwitterプロジェクトでFTSを使用していますか?もしそうなら、どちらを選択しましたか? – norgepaul

+0

現在、DISQLite3を使用する予定ですが、クライアントは保留状態です。 Delphi Live!そして町の家族。物事は落ち着いていて、今は仕事で忙しい時があります。 –

-1

私は、要件2の問題があると思います。インデックスは、データベースまたはファイルシステムに格納できます。ほとんどのインデックスサービスでは、独自のインデックスファイルが作成され、高度に最適化された方法でデータが保存されます。あなたが本当にそれを望むなら、おそらく単一のBLOBフィールドにインデックスをロードして保存することは可能ですが、私は本当にこの理由を見ません。

+0

私たちは '%something% ''のような 'どこのフィールドをしたくないのですか? – jorgeu

関連する問題