曲などのタイトルを含む2.000.000データベース行内を検索する必要があります。結果をすばやく提供し、iOSプラットフォームで動作し、Unicode文字セットをサポートするソリューションが必要です。私は自分の問題を解決するためにsqliteのFTSを使用することを考えています。私は他の解決策を受け入れています。
これは私がこれまでに知っていることです:
仮定1: FTSはiOS> = 5でデフォルトで有効になっています-これは問題ありません、私の最小要件は5です
仮定2:ユニコードフォールディング(Ä=> a)は自分でsqliteをコンパイルしないと機能しないと思います
仮定3: FTSは次のような部分文字列検索をサポートしていないことを知っていますMATCH "*searchterm*"
仮定4:デフォルトのポーターステマーはUnicode文字セット(ロシア語、日本語、中国語など)ではかなり悪いと読みました
私の現在のアプローチは、LIKE "%searchterm%"
ステートメントを使用しています。ステートメントは上記の言語で最適に機能するためです。残念ながら、それらは時々遅くなる傾向があります。
質問
質問1: FTSを使用したsqliteは正しい方法ですか?または、cLucene / CoreDataなどで調査する必要がありますか?他のオプションは何ですか?iOSプラットフォームでさまざまな言語のタイトルを検索するための最良の方法は何ですか?
質問2:トークナイザーを交換する必要がありますか?トークナイザーをiOSプラットフォームの拡張機能としてロードできますか?これが解決策でしょうか?
質問3: iOS5/6のICU拡張機能でsqliteftsが有効になっていますか?
質問4: Appleの内部検索は、たとえば音楽プレーヤーでどのように機能しますか?CoreData?