我正在寻找关于在iPhone上对某些静态数据实施全文搜索的最佳方法的建议。
基本上我有一个包含网站离线版本的应用程序,大约50MB的文本,我希望用户能够搜索术语。我想我应该以某种方式建立一个表格 (“word”,reference_to_file_containing_word) 或其他东西,把它放入Core Data或只是sqlite,索引“word”列,然后让搜索工具在表中搜索搜索词,并获取术语或其他东西的结果集的交集。
这不会让人们搜索短语,但这很容易,也可能不会太慢。
我想为此使用现有的SDK功能。我应该使用Core Data还是sqlite?
有没有人对如何做到这一点有任何其他想法?
您想将文档中的每个单词放在数据库中自己的行中吗?这将比文档本身占用更多的空间。
我建议只搜索文字;正则表达式实际上非常快。否则,你可以实施 博耶 - 穆尔 相当容易。
[编辑] 如果你坚持创建单词索引,你就无法击败 特里。它比使用数据库更快,并且最有可能占用比文档本身更少的空间(与数据库不同)
您想将文档中的每个单词放在数据库中自己的行中吗?这将比文档本身占用更多的空间。
我建议只搜索文字;正则表达式实际上非常快。否则,你可以实施 博耶 - 穆尔 相当容易。
[编辑] 如果你坚持创建单词索引,你就无法击败 特里。它比使用数据库更快,并且最有可能占用比文档本身更少的空间(与数据库不同)
答案是SQLite的FTS3。谷歌,有很多教程如何让它在iPhone上运行。
在iPhone上使用SQLite的简单方法是使用FMDB。