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