我正在考虑在我们的 Firebird 数据库上实现全文搜索。我们的要求是:
- 几个表中的每个字段都应该被索引。当找到结果时,我们应该能够找出原始表。
- 索引可以存储在数据库或文件系统中。
- 必须使用搜索结果(BigInt 主键)与数据库中的原始记录连接,以显示表中的记录。
任何人都可以推荐一种体面的方式来实现我们所需要的吗?我已经研究过以某种方式将 DotLucence 集成到 Delphi 中,但实际上并没有找到很多关于如何去做的信息。
我正在考虑在我们的 Firebird 数据库上实现全文搜索。我们的要求是:
任何人都可以推荐一种体面的方式来实现我们所需要的吗?我已经研究过以某种方式将 DotLucence 集成到 Delphi 中,但实际上并没有找到很多关于如何去做的信息。
这里有一些资源供您考虑:
有一个名为 Red Soft 的公司制作的 Firebird 代码的分支。它的许可与 Firebird 相同,因此您可以查看他们的版本,该版本可以通过 JavaVM 接口使用 Lucene 引擎支持全文搜索。
您还可以阅读Bjoern Reimer 和 Dirk Baumeister 在第四届 Firebird 会议上发表的题为“在没有全文搜索引擎的情况下在 Firebird 中进行全文搜索”的论文。
我想你会遇到需求2的问题:索引可以存储在数据库中,也可以存储在文件系统中。大多数索引服务创建自己的索引文件,以高度优化的方式存储数据。如果您真的想要它,也许可以将索引加载并保存到单个 blob 字段,但我真的没有看到这样做的原因。