我正在开发一个iOS应用程序,该应用程序将由大约600本书组成,每本书大约90页(.pdf文档)。我所采用的方法是将所有文本放入分成多个段落的数据库中,然后调用并显示它们。为了提高搜索速度,我使用CLucene为数据库中的所有必需数据建立了索引,并意识到,我现在有两个数据副本,而且从索引而不是按预期的数据库访问时间越来越好。
我的问题是:建议还是建议在没有数据库的情况下使用该应用程序,仅从索引中提取所有数据,即使在未执行搜索的情况下也是如此。这将提高我的应用程序的速度和大小,因为不包括数据库,但建议这样做吗?
非常感谢您的协助或建议,因为我对此领域经验不足,也是我第一次使用任何形式的搜索API。
最佳答案
不必太担心重复数据。但是,您必须注意的是,确保仅将必要的数据存储在Lucene索引中。因此,如果您实际上不打算直接从索引中显示完整的章节,请不要存储它们,而只需对其进行索引。这样,它就不会重复数据。
同样,您会发现,如果您希望数据是可编辑,可维护和可备份的,那么从长期来看,将数据存储在数据库中会更加容易。但是,这并不意味着您必须使用MySQL或MS SQL之类的关系数据库。也有许多NoSQL数据库选项。
对于NoSQL的优缺点,我不会赘述,因为您可以在Google上进行搜索。但是,例如,您可以使用MongoDB来存储和提供所有数据,而不必使用数据库和Lucene,它仍然是非常快速且可扩展的解决方案。
关于ios - 建议仅使用Lucene索引而不使用数据库吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17936784/