我正在考虑在我们的Firebird数据库上实现全文搜索.我们的要求是:
应该为几个表中的每个字段编制索引.找到结果后,我们应该能够找到原始表.
索引可以存储在数据库或文件系统中.
必须使用搜索结果(BigInt主键)与数据库中的原始记录连接,以显示表中的记录.
任何人都可以推荐一种体面的方式来实现我们的需求吗?我已经看过以某种方式将DotLucence集成到Delphi中,但是无法真正找到有关如何实现它的信息.
以下是一些供您考虑的资源:
Sphinx非常强大且流行的免费开源全文搜索引擎.
Textolution全文搜索Interbase和Firebird.
IBObjects全文搜索("模糊搜索")模块,一个完整工作的模块,可用于设置搜索索引或作为您自己的自定义实现的模型.
Rubicon是一个Delphi附加组件,可以将全文搜索功能放入您的应用程序中.
全文搜索Firebird SQL由Dan Letecky在CodeProject上使用DotLucene全文搜索引擎.
Mutis是Lucene搜索引擎的Delphi端口.为索引,目录和搜索基于文本的信息提供灵活的API,具有出色的性能.非常适合实现自定义搜索引擎,研究,文本检索,数据挖掘等.
有一个由Red Soft公司制作的Firebird代码.它的许可与Firebird相同,因此您可以查看其版本,该版本可以通过JavaVM接口使用Lucene引擎支持全文搜索.
您还可以阅读Bakeern Reimer和Dirk Baumeister在第4届Firebird Conference上发表的题为" 没有全文搜索引擎的Firebird全文搜索 "的论文.