代码之家  ›  专栏  ›  技术社区  ›  Nimrod

在iPhone上实现全文搜索?

  •  11
  • Nimrod  · 技术社区  · 15 年前

    我正在寻找对iPhone上的一些静态数据进行全文搜索的最佳方法的建议。

    基本上,我有一个应用程序,包含一个网站的离线版本,大约50MB的文本,我希望用户能够搜索到术语。我想我应该以某种方式建立一个 (“word”,引用\u到包含\u word的\u文件) 或者,将其放入核心数据或者只是sqlite中,对“word”列进行索引,然后让搜索工具搜索表中的搜索词,并获取这些词或其他内容的结果集的交集。

    这不允许人们搜索短语,但这很容易,可能不会太慢。

    我只想使用现有的SDK功能。我应该使用核心数据还是sqlite?

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

    2 回复  |  直到 15 年前
        1
  •  8
  •   BlueRaja - Danny Pflughoeft    15 年前

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

    我建议只搜索文本;regex实际上非常快。否则,您可以实现 Boyer-Moore 相当容易。

    [编辑] 如果你坚持要创建一个单词索引,你就不能打败 trie . 它比使用数据库更快,而且最可能占用的空间比文档本身少(与数据库不同)。

        2
  •  2
  •   baswell    15 年前

    对于sqlite,答案是fts3。谷歌,有很多关于如何让它在iPhone上工作的教程。

    在iPhone上使用sqlite的简单方法是使用fmdb。