【问题标题】:How to limit NSMetadataQuery search results如何限制 NSMetadataQuery 搜索结果
【发布时间】:2012-09-24 08:35:38
【问题描述】:

我正在使用 NSMetadataQuery 执行聚光灯搜索,我面临的问题是我无法限制 NSMetadataQuery 搜索特定的隐藏文件夹,如 /Users/username/Library(因为库是隐藏文件夹)。

任何帮助将不胜感激。

【问题讨论】:

    标签: objective-c xcode macos cocoa nsmetadataquery


    【解决方案1】:

    问题在于 Spotlight 创建的索引并非旨在通过路径进行限制。索引经过优化,可以快速找到术语,然后您可以获取结果(或其他元数据)的相应 URL。索引未针对基于路径的搜索进行优化。

    搜索索引(使用 SearchKit 构建)无论如何都进行了非常优化,即使有大量文件也能很快返回结果。获得结果后,您必须自己过滤这些结果。

    请注意,~/Library 中的大多数文件不会包含在索引中,例如缓存、plist 文件、插件等...

    【讨论】:

    • 感谢您的回复,但令我惊讶的是,所有文件,无论是隐藏文件还是库都已编入索引。你可以查看苹果示例代码“spotlighter”。
    • 也许过滤是由 Spotlight 自己完成的。我的理解是,系统不会费心索引这些文件,但也许自 Tiger 以来他们已经改变了实现。
    猜你喜欢
    • 2011-04-19
    • 2021-10-07
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-24
    • 2017-05-08
    • 1970-01-01
    相关资源
    最近更新 更多