2009-06-04 78 views
7

我正在考慮在Firebird數據庫上實現全文搜索。我們的要求是:使用Firebird和Delphi進行全文搜索

  1. 幾個表中的每個字段都應該編制索引。當找到結果時,我們應該能夠找出始發表。
  2. 索引可以存儲在數據庫或文件系統中。
  3. 必須使用搜索結果(BigInt主鍵)與數據庫中的原始記錄進行連接,以在表中顯示記錄。

任何人都可以推薦一個體面的方式來實現我們需要的東西嗎?我已經看過將DotLucence集成到Delphi中,但不能真正找到關於如何去做的很多信息。

回答

12

這裏有一些資源供大家思考:

  • Sphinx非常強大的和流行的免費開源的全文搜索引擎。
  • Textolution全文搜索Interbase和Firebird。
  • IBObjects Full Text Search(「模糊搜索」)模塊,一個完全可用的模塊,可用於設置搜索索引或作爲您自定義實現的模型。
  • Rubicon是一個Delphi插件,可讓您將全文搜索功能放入您的應用程序中。
  • Fulltext Search for Firebird SQL By Dan Letecky在CodeProject上使用DotLucene全文搜索引擎。
  • Mutis是Lucene搜索引擎的Delphi端口。爲索引,目錄和搜索基於文本的信息提供一個靈活的API,並具有出色的性能。擅長實現自定義搜索引擎,研究,文本檢索,數據挖掘等。

有一個fork of Firebird代碼由一家名爲Red Soft的公司製作。它的許可證與Firebird相同,所以你可以看看他們的版本,它可以支持使用Lucene引擎通過JavaVM接口進行全文搜索。

您還可以閱讀第四屆Firebird大會上發佈的Bjoern Reimer和Dirk Ba​​umeister的文章「Full text search in Firebird without a full text search engine」。

+1

大名單,吉姆! – gabr 2009-06-04 21:23:35

+0

謝謝吉姆。我已經看過他們中的大多數,但從來沒有找到Mutis。我正在下載。順便說一句,你在Twitter項目中使用FTS嗎?如果是這樣,你選擇了哪個? – norgepaul 2009-06-05 06:26:24

-1

我想你會遇到需求2的問題:索引可以存儲在數據庫或文件系統中。大多數索引服務都會創建自己的索引文件,以高度優化的方式存儲數據。如果你真的想要它,也許有可能加載並保存索引到一個blob字段,但我真的沒有看到這個原因。