SQLite3似乎附带了三个不同的全文搜索引擎,分别称为FTS1、FTS2和FTS3。该网站上提供的文档提到,FTS1是稳定的,FTS2正在开发中,您应该使用FTS2。我在网上找到的一些例子使用的是FTS3,它位于CVS中,并且没有与FTS2相比较的文档。据我所知,没有一个全文搜索引擎带有融合的源代码。
那么,我的问题是:这三个引擎中的哪个(如果有的话)应该用于SQLite中的全文索引?或者我应该简单地使用像Sphinx这样的第三方工具,或者使用Lucene中的自定义解决方案?
发布于 2009-08-29 18:16:49
我最近也研究了全文解决方案。看起来SQLite现在没有实际的选择。无论您选择什么,随着各种FT2、FT3等解决方案的成熟,您将不可避免地不得不对其进行重新架构。因此,咬紧牙关,假设您将来需要做更多的开发工作,以跟上不断变化的全文技术的步伐。
Sphinx Search还没有对SQLite的直接支持。它目前只支持MySQL和PostgreSQL (2009年8月)。因此,您必须破解自己的SQLite连接器,或者将SQLite数据迁移到MySQL或PostgreSQL,然后使用Sphinx Search对数据进行索引。我认为有人正在开发一个支持Firebird的Sphinx搜索补丁,所以如果你愿意卷起袖子,也许这并不难。
还要注意,Sphinx搜索在向索引中增量添加数据方面有一些限制。在你决定使用它之前,你应该花一个小时左右的时间阅读文档。
我也不知道在Lucene中有什么直接的方法来索引SQLite数据。您可能必须编写自己的代码来处理成批的SQLite数据,一次向Lucene索引添加一行。这似乎是Lucene的用法,无论数据库是什么。
更新: Solr是一项很棒的配套技术。Solr为搜索引擎提供了许多功能,包括从任何JDBC数据源批量加载查询结果数据的能力。
发布于 2009-12-17 22:43:53
从3.6.21开始,FTS3有了很好的文档记录,并获得了更多官方可见的状态。
FTS3是在Windows上构建的标准sqlite DLL的一部分,不确定合并的源代码。
我们已经在生产中使用它大约一年了,没有什么特别的问题。
https://stackoverflow.com/questions/1257262
复制相似问题