EBWin4の全文検索インデックスはとりあえずHP上でプレリリース。若干の最適化を施した版をVectorにアップ予定。
手元では、EBWin4で作成した全文検索インデックスファイルを、EBMac、EBPocket for iOS/Androidにコピーして動作するところまでは検証している。
EBMacはなるべくMac単独で辞書活用を完結できるようにしたい(学生とかでWindowsを持っていない人もいるかもしれない)ので、できれば全文検索インデックスの作成やユーザ辞書の作成もできるようにしたいが、Objective-Cが他の言語と結構違うので、UIを追加するのは、なかなか手間がかかって進まない。「EBWin4で作ったインデックスが使えます」というレベルでいったんリリースすると思う。
肝心の性能だが、数百件の一致なら一瞬だが、数千件レベルになると、初回の検索で数秒、2回目以降の検索では一瞬という挙動になる。C#がインタプリータだからかと思ったが、Objective-CのMac版でも同じ挙動。SQLite3の特性か、今回多用しているSTLのせいかもしれない。常識的な高速化手法は色々試みたが、なかなかパフォーマンスが上げられない。ファイルIOの代わりにメモリマップドIOにしても駄目。N-gramにSQLを使うのはやっぱり無謀かも。
もっとも広辞苑レベルなら実用上の問題は無い。Androidで1秒以内で全文検索の結果が帰ってくるのはちょっと感動する。