使用Firebird和Delphi进行全文搜索

时间:2009-06-04 20:12:54

标签: delphi full-text-search sphinx firebird

我正在考虑在Firebird数据库上实现全文搜索。我们的要求是:

  1. 应该为多个表中的每个字段编制索引。找到结果后,我们应该能够找到原始表格。
  2. 索引可以存储在数据库或文件系统中。
  3. 必须使用搜索结果(BigInt主键)与数据库中的原始记录连接,以在表格中显示记录。
  4. 任何人都可以推荐一种体面的方式来实现我们的需求吗?我已经看过以某种方式将DotLucence集成到Delphi中,但是无法真正找到有关如何实现它的信息。

2 个答案:

答案 0 :(得分:12)

以下是一些供您考虑的资源:

  • Sphinx非常强大且流行的免费开源全文搜索引擎。
  • Textolution全文搜索Interbase和Firebird。
  • IBObjects全文搜索(“模糊搜索”)模块,一个完整工作的模块,可用于设置搜索索引或作为您自己的自定义实现的模型。
  • Rubicon是一个Delphi附加组件,可让您将全文搜索功能放入应用程序中。
  • 使用DotLucene全文搜索引擎在CodeProject上
  • Fulltext Search for Firebird SQL By Dan Letecky
  • Mutis是Lucene搜索引擎的Delphi端口。为索引,目录和搜索基于文本的信息提供灵活的API,具有出色的性能。非常适合实现自定义搜索引擎,研究,文本检索,数据挖掘等。

由一家名为Red Soft的公司制作了fork of Firebird代码。它的许可与Firebird相同,因此您可以查看其版本,该版本可以通过JavaVM接口使用Lucene引擎支持全文搜索。

您还可以阅读Bjoern Reimer和Dirk Ba​​umeister在第四届Firebird会议上发表的题为“Full text search in Firebird without a full text search engine”的论文。

答案 1 :(得分:-1)

我认为您将遇到问题2的问题:索引可以存储在数据库或文件系统中。大多数索引服务都创建自己的索引文件,以高度优化的方式存储数据。如果你真的想要它,也许可以加载并保存一个blob字段的索引,但我真的没有看到这个原因。