Lucene vs SQLite全文搜索Android应用程序

时间:2014-04-02 12:24:21

标签: android sqlite dictionary lucene

我的英语技能不好。所以请试着理解我说的话。谢谢!

我想创建一个Android词典应用,但我没有经验。我做了一项研究,创建数据库有两种选择:Lucene和SQLite全文搜索。所以我做了一个应用程序作为一些教程。我发现FTS使用虚拟表来存储数据库,但问题是第一次向虚拟表添加数据时应用程序冻结(从文本文件大约10000行)。搜索功能也需要很长时间(约10秒)

然后,我找到了一些关于Lucene的其他教程。 Lucene创建了一个用于搜索的索引目录,但我不知道它有多快(使用大数据)。有人可以就我的问题给我一些建议吗?

2 个答案:

答案 0 :(得分:2)

我还没有将Lucene用于FTS,但你可以在SQLite中创建一个虚拟表。但是,SQLite中虚拟表的缺点是存储空间几乎翻了一倍。

"我发现FTS使用虚拟表来存储数据库,但问题是在第一次向虚拟表添加数据时(从文本文件大约10000行)冻结应用程序。搜索功能也需要很长时间(约10秒)" 或者,您可以预先创建一个虚拟表,只需将sqlite数据库添加到assets文件夹。

答案 1 :(得分:2)

我建议你使用带有fts4的sqlite。 三大理由

  1. sqlite是android os功能。它在Android中得到了很好的支持,很多人都使用它。
  2. 可扩展性好,不仅有fts功能支持,还有其他功能支持。
  3. 如果你的索引构建时间长了两个,只需在构建apk之前构建索引,然后将其放入资源中。 10000行措辞大小db不需要500ms从资产复制到/ data / data