我需要在包含标题的2.000.000个数据库行中进行搜索,例如歌曲。我需要一个快速提供结果的解决方案,在iOS平台上运行并支持unicode charset。我正在思考关于使用sqlite的FTS来解决我的问题。我愿意接受任何其他解决方案。
假设1:默认情况下在iOS> = 5中启用FTS - 这很好,我的最低要求是5
假设2:我认为,如果不自行编译sqlite,unicode折叠(Ä=> a)就无法正常工作
假设3:我知道FTS不支持像MATCH "*searchterm*"
这样的子字符串搜索
假设4:我读到默认的porter stemmer非常糟糕的unicode charsets(俄语,日语,中文,......)
我目前的做法是使用LIKE "%searchterm%"
语句,因为它们最适合上述语言。不幸的是,它们有时会变慢。
问题1:使用FTS的sqlite是正确的方法吗?或者应该调查cLucene / CoreData等?还有什么其他选择?在iOS平台上搜索不同语言的标题的最佳方法是什么?
问题2:我是否需要更换标记器?我可以将tokenizer加载为iOS平台上的扩展程序吗?可能this是解决方案吗?
问题3: iOS 5/6上的ICU扩展是否启用了sqlite fts?
问题4: Apple的内部搜索如何运作,例如在音乐播放器? CoreData?