0

我正在努力提高使用核心数据的 iOS 应用程序的搜索速度。任何人都可以帮助或建议替代解决方案来提高我的搜索速度吗?我在下面列出了我的情况的详细信息。

项目详情

我目前正在创建一个数据参考应用程序,它使用带有预加载 SQLite 数据库的核心数据。我希望能够搜索可能包含超过 100000 条记录的实体的一个或多个属性并快速返回结果。

到目前为止,我取得的最好结果(搜索仍然很慢)是使用搜索显示控制器加载视图,为 fetchResultController 的获取请求设置获取限制(当前为 100)。我还使用搜索范围来简化谓词。我确实在我的谓词中使用了“包含”关键字,但我不确定如何在 WWDC 2010 的第 137 次会议中实施建议,以及我应该存储哪些关键字或应该存储多少。

这是我的一个课程的链接, http: //pastebin.com/cHHicc1s

感谢您的时间和帮助。

敬敬敬涛

4

2 回答 2

1

您可能希望将现有属性规范化为新属性,然后对其进行索引。从您的谓词中删除“CONTAINS”,而是使用>=or<等​​值。此外,规范化搜索文本,以便比较平衡。Apple 在“ Derived Property ”示例和 WWDC 2010 session #118 视频中记录了所有这些。

于 2012-05-21T07:13:42.867 回答
0

如果要对属性进行大量搜索,则应创建索引。您可以在定义模型时在 Xcode 中执行此操作。单击实体,在您指定实体名称的下方,您可以创建其他索引。

但是请注意,您将产生额外的文件大小开销,并且插入/删除也会花费更多时间。但是,您的搜索会非常快。

于 2012-04-18T17:21:23.020 回答