在iPhone上实现全文搜索?

时间:2010-01-10 04:51:20

标签: iphone sqlite search core-data indexing

我正在寻找有关在iPhone上对某些静态数据实施全文搜索的最佳方法的建议。

基本上我有一个应用程序,其中包含一个网站的离线版本,大约50MB的文本,我希望用户能够搜索术语。我认为我应该以某种方式构建一个(“word”,reference_to_file_containing_word)等表,将其放入Core Data或只是sqlite,索引“word”列,然后进行搜索工具搜索用于搜索术语的表格,并获取术语或其他内容的结果集合。

这不会让人们搜索短语,但这很容易,也可能不会太慢​​。

我想为此使用现有的SDK功能。我应该使用Core Data还是sqlite?

有没有人对如何做到这一点有任何其他想法?

2 个答案:

答案 0 :(得分:8)

您想将文档中的每个单词放在数据库中自己的行中吗?这将比文档本身占用更多的空间。

我建议只搜索文字;正则表达式实际上非常快。否则,您可以非常轻松地实现Boyer-Moore

[编辑] 如果您坚持创建单词索引,则无法击败trie。它比使用数据库更快,并且最有可能占用比文档本身更少的空间(与数据库不同)

答案 1 :(得分:2)

答案是SQLite的FTS3。谷歌,有很多教程如何让它在iPhone上运行。

在iPhone上使用SQLite的简单方法是使用FMDB。