1

我正在开发一个 iOS 应用程序,它包含大约 600 本书,每本书大约 90 页(.pdf 文档)。我采用的方法是将所有文本放入数据库中,分成段落,然后调用并显示。为了提高搜索速度,我使用 CLucene 从数据库中索引了所有需要的数据并意识到,我现在有两个数据副本,并且我从索引而不是预期的数据库中获得了更好的访问时间。

我的问题是:是否建议或建议在没有数据库的情况下使用应用程序,并且只从索引中提取所有数据,即使在没有执行搜索的情况下也是如此。这将提高我的应用程序的速度和大小,因为不会包含数据库,但是否可取?

我将不胜感激任何帮助/建议,因为我在这方面缺乏经验,而且这是我第一次使用任何类型的搜索 API。

4

1 回答 1

1

不要担心重复数据。不过,您必须注意的是,确保只有必要的数据存储在您的 Lucene 索引中。因此,如果您实际上不打算直接从索引中显示完整的章节,请不要存储它们,只需索引它们即可。这样,它不是重复的数据。

此外,从长远来看,如果您希望数据可编辑、可维护和可备份,则将其存储在数据库中会更容易。但是,这并不意味着您必须使用关系数据库,如 MySQL 或 MS SQL。也有许多 NoSQL 数据库选项。

我不会详细介绍 NoSQL 的优缺点,因为你可以用谷歌搜索。但是,例如,您可以使用 MongoDB 来存储和提供所有数据,而不是使用数据库Lucene,它仍然是非常快速且可扩展的解决方案。

于 2013-07-30T12:03:53.943 回答