9

一般化された質問で申し訳ありません...私は長い間探していましたが、使用できるものや簡単に適応できるものはまだ見つかりません. ポインタをいただければ幸いです。

プレーンテキスト形式のいくつかの教科書を含む参照アプリを構築しています。ユーザーが検索を実行して、結果のリストを含むテーブルを取得できるようにしたい。動作中のプロトタイプはありますが、私が書いた検索ロジックはそれほどスマートではなく、それを改善するのに苦労しました。

これは明らかにかなり一般的な問題なので、このタスクに適応できるツールを探しています。これまでのところ、Lucene ( http://vafer.org/blog/20090107014544/ ) と Locayta ( http://www.locayta.com/iOS-search-engine/locayta-search-mobile/ )を見つけました。

Lucene は iOS 2 用に最後に更新されたようです...自分で作り直すことができるかどうかさえわかりません。多分。

Locayta はおそらくうまく機能するでしょうが、商用ライセンスは 1,000 ドルで、ニッチな市場であるため、このアプリですぐにそれを取り戻すことはできないかもしれません.

ありがとう!

4

2 に答える 2

5

私が働いている場所と同じ苦境に出くわしましたが、まだ解決策を決定していません. Locayta は有望に思えますが、それを除けば、SQLite の FTS3/FTS4 も調査しました。

唯一の問題は、単語の一部を照合する方法がないことでした。単語全体を含むフィールド (例: "paper" は "printer paper"、"paper pump"、および "sketch paper" に一致します)、または何かで始まる単語 (例: "bi*" は "binder" に一致します) を含むフィールドを簡単に検索できます。 "、および "bicycle") ですが、接尾辞を照合する組み込みの方法はありません。

その機能が必要ない場合は、FTS3/FTS4 が機能する可能性があります。

フォローアップで、あなたの SQLite が FTS3() を認識しなかったとおっしゃっていましたが、最初は同じ問題がありました。どうやら、デフォルトではiOSバージョンにバンドルされていないようです。代わりに、SQLite3アマルガムをダウンロードして、プロジェクトに手動で含める必要があります。FTSはSQLite の iOS ビルドで利用できますか?

また、SQLITE_ENABLE_FTS3 変数はデフォルトでは有効になっていないことに注意してください。http://www.sqlite.org/fts3.html#section_2 で詳しく説明されているように、構成に追加するだけです

お役に立てれば。

于 2013-04-15T20:09:18.273 に答える
4

プレーンな C コードを iOS Objective-C に変換できる場合は、Apache Lucy (Lucene の緩やかな "C" ポート) を検討する価値があります。

于 2013-04-17T22:51:20.883 に答える