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

在Android中存储和搜索大型文本数据的最佳方式,android,xml,database,sqlite,Android,Xml,Database,Sqlite,我正在为Android开发一个宪法应用程序。我想知道存储大型文本数据的最佳方式是什么。我想要的功能是它的搜索和快速。如果我要使用sqlite3,我应该如何创建该文件以及在哪里将其上载到应用程序中,如果我要使用XML存储它,它是否可以搜索?速度很重要。您可以将文本文件按行分隔,并将行存储在sqlite数据库中 您还可以添加与在章节中组织它们、关联相关主题、标记等的行相关的数据 然后,您可以通过“完全扫描”文本表来查询文本。从表格中选择行号,其中的行类似于“%word%” 根据符合搜索的行数,您可以

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

您可以将文本文件按行分隔,并将行存储在sqlite数据库中

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

然后,您可以通过“完全扫描”文本表来查询文本。从表格中选择行号,其中的行类似于“%word%”

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

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

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

1)sqlite可以创建。基本上,它是一个每个单词都有内置索引的表。它允许您通过以下查询查找数据

SELECT * FROM chapter WHERE chapter MATCH 'someword'

意思是“某个单词和另一个单词之间的间隔小于6个单词”

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

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

谢谢你为我指明了正确的方向,我正在使用图书馆
SELECT * FROM chapter WHERE chapter MATCH 'someword NEAR/6 otherword'