11

iOS アプリケーションで SQLite FTS 拡張機能を使用しています。うまく機能しますが、問題は、文字列のプレフィックスのみに一致する (またはキーワード検索で始まる) ことです。

すなわち

これは機能します:

SELECT FROM tablename WHERE columnname MATCH 'searchterm*'

しかし、次の2つはそうではありません:

SELECT FROM tablename WHERE columnname MATCH '*searchterm'


SELECT FROM tablename WHERE columnname MATCH '\*searchterm\*'

これに対する回避策、または FTS を使用してクエリに似たクエリを作成する方法はありますかLIKE '%searchterm%'

編集:

Retterdesdialogs で指摘されているように、テキスト全体を逆の順序で保存し、逆の文字列でプレフィックス検索を実行することは、私の最初の質問である末尾/サフィックス検索の問題の可能な解決策ですが、「含む」には機能しません探す。それに応じて質問を更新しました。

4

3 に答える 3

2

回避策は、逆文字列を追加の列に格納することです。このリンクを参照してください(アイデアを提供する必要があるのとまったく同じではありません):

全文検索を使用してサフィックスを検索

于 2012-08-09T10:40:57.193 に答える
2

含むクエリで機能させるには、検索できるようにする用語のすべてのサフィックスを保存する必要があります。これにはデータベースが非常に大きくなるという欠点がありますが、データを圧縮することで回避できます。

SQLite FTS の内容と接尾辞の一致

于 2013-09-03T17:00:48.997 に答える