7

我需要在包含标题(例如歌曲)的 2.000.000 个数据库行中进行搜索。我需要一个能够快速提供结果、适用于 iOS 平台并支持 unicode 字符集的解决方案。我正在考虑使用 sqlite 的 FTS 来解决我的问题。我愿意接受任何其他解决方案。

这是我目前所知道的:

假设 1:在 iOS >= 5 中默认启用 FTS - 这很好,我的最低要求是 5

假设 2:我假设,如果不自行编译 sqlite,则 unicode 折叠 (Ä => a) 不起作用

假设 3:我知道 FTS 不支持子字符串搜索,例如MATCH "*searchterm*"

假设 4:我读到默认的搬运工词干分析器对于 unicode 字符集(俄语、日语、中文……)非常糟糕

我目前的方法是使用LIKE "%searchterm%"语句,因为它们最适合上述语言。不幸的是,它们有时往往很慢。

问题

问题 1:带有 FTS 的 sqlite 是正确的方法吗?还是应该在 cLucene / CoreData 等中进行调查?还有哪些其他选择?在 iOS 平台上搜索不同语言的标题的最佳方法是什么?

问题 2:我需要更换分词器吗?我可以在 iOS 平台上将 tokenizer 作为扩展加载吗?可能是解决方案吗?

问题 3:在 iOS 5 / 6 上是否启用了 ICU 扩展的 sqlite fts?

问题 4: Apple 的内部搜索是如何工作的,例如在音乐播放器中?核心数据?

4

1 回答 1

1

您可能想检查一下:带核心数据的全文搜索

于 2013-02-09T10:39:46.873 回答