在android中存储和搜索大型文本数据的最佳方法

时间:2014-06-01 16:38:36

标签: android xml database sqlite

我正在为android开发一个宪法应用程序。我想知道存储大型文本数据的最佳方法是什么。我想要的功能是它可以搜索和快速。 如果我要使用sqlite3我应该如何创建文件以及我将它上传到应用程序中,如果我使用xml来存储它,它是否可以搜索?速度很重要。

2 个答案:

答案 0 :(得分:1)

1)sqlite可以创建FTS (Full Text Search) tables。基本上它是一个在每个单词上都有内置索引的表。它允许您使用

等查询查找数据
SELECT * FROM chapter WHERE chapter MATCH 'someword'

SELECT * FROM chapter WHERE chapter MATCH 'someword NEAR/6 otherword'

表示'someword和otherword之间的间隔少于6个字'。

2)至于如何在您的应用程序中包含数据库,我认为您有两个选择:

  • 事先构建数据库(例如使用内置sqlite绑定的Python)并将其包含在应用程序的资产中。
  • 包含文本文件资产,并在首次启动时创建数据库。

答案 1 :(得分:0)

您可以在行中分隔文本文件并将这些行存储在sqlite数据库中。

您还可以在章节中添加与组织它们的行相关的数据,关联相关主题,标签等...

然后您可以通过“全扫描”文本表来查询文本。 “从表中选择line_number,其中的行如”%word%“;

根据符合搜索条件的行,您可以调出相应的页面或章节。

这是一个简单的示例,您可以构建应用程序以生成更精细的调优查询。

但考虑到搜索时间以及如何处理搜索后发现的内容,这种方法应该有更好的成本/效益比。