【问题标题】:Lucene vs SQLite Full Text Search for Android Application用于 Android 应用程序的 Lucene 与 SQLite 全文搜索
【发布时间】:2014-05-13 17:35:48
【问题描述】:

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

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

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

【问题讨论】:

  • 您在寻找什么建议?它们之间的比较基于性能?另外,指定您需要哪些搜索功能
  • @Mysterion 你能告诉我如何快速将数据加载到虚拟表吗?另外,我想知道 FTS 索引数据是为我们还是我们必须自己索引数据(以便快速搜索)?
  • 嗯,你确定 Lucene 可以在 Android 运行时运行吗?
  • @Chiron 我不确定。有什么方法可以帮助更快地将数据从文件加载到 SQLite 数据表?
  • 也许这个答案会给你正确的决定:link

标签: android sqlite dictionary lucene


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我建议你在 fts4 中使用 sqlite。 三强理由

    1. sqlite 是 android 操作系统功能。在android中得到了很好的支持,很多人都在使用它。
    2. 良好的可扩展性,不仅支持 fts 功能,还支持其他功能。
    3. 如果你觉得建索引的时间长了两个,那么在建apk之前先建索引,然后放到asset中。 10000 行文字大小 db 不会花费 500 毫秒从资产复制到 /data/data

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-19
      • 2013-12-11
      • 2013-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多