gpt4 book ai didi

iphone - iOS 中的全文子串搜索

转载 作者:可可西里 更新时间:2023-11-01 03:34:02 27 4
gpt4 key购买 nike

我需要我的 iPhone/iPad 应用程序能够快速搜索大约 10,000 条记录(每条记录大约相当于一段文本),以查找记录中包含的任何子字符串。因此,如果记录包含单词“Flame”,则查询“lame”应该匹配。

我目前正在使用 SQLite,但是“LIKE %term%”搜索对于这么多记录来说太慢了。启用全文搜索似乎不能完全满足我的需求,因为 SQLite 仅支持前缀通配符(例如“Flam*”,而不是“*lame”)。

我尝试过使用一个巨大的文本 block (~350K),并执行 [NSString rangeOfString:...],我认为它使用了 Boyer-Moore 算法。这比“LIKE %term%”搜索要快,但仍然不是我希望的那种速度。

有什么方法或库可以实现这种可扩展的子字符串搜索,并且可以在 iPhone 上运行吗?

最佳答案

这里有许多不同的选项。我不知道每个的基准,所以你必须做一些测试。

首先是 SQLite 的 FTS3 扩展。这应该给你快速的索引全文搜索: http://regularrateandrhythm.com/regular-rate-rhythm-blog/sqlite3-fts-in-IOS4.html

那么,iOS 4 中引入的正则表达式呢:
http://developer.apple.com/library/ios/#documentation/Foundation/Reference/NSRegularExpression_Class/Reference/Reference.html

对于 iOS 4 之前的版本,您可以使用 RegexKitLite:
http://regexkit.sourceforge.net/RegexKitLite/index.html

如果您决定使用正则表达式,请查看有关如何优化它们的条目:
How to speed up iPhone regular expressions with NSRegularExpression?

关于iphone - iOS 中的全文子串搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5355330/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com