2009-08-10 2 views
3

ここで私がしようとしていることがあります。SQLiteクエリ - 全文検索でのヘルプが必要

ユーザ(a): 2つのフィールド(description-1)と(description-2)にデータを入力します。

ユーザー(b)反対のフィールドに同様のデータを入力します。

ユーザー(a)または(b)の両方のフィールドの検索に一致するものが見つかります。

デートの検索にはよく似ています。ユーザー(a)は、自分自身と自分が探しているマッチの説明を入力し、ユーザー(b)は自分自身と探しているマッチの説明を入力すると、両方が検索してマッチを見つけることができます。

英語擬似クエリでそう

...

選択名私=「ターゲット」とターゲット=データから「私は」

漁獲量は、フィールド内の単語の一部が一致するだろう、となり、 すべてではありません。

+0

は、フリーフォームに入力された情報であるか、またはそれに任意の構造を再ですか? –

+0

データはユーザーによって自由形式で入力されます。データが構造化されている場合、代替手段はありますか? – Jordan

+0

@ジョーダンよく、どのような構造であれ、ほとんどの定義がより簡単になります。 –

答えて

5

このタイプのマッチングは、テクノロジがどのような場合でも難しいです。あなたは噛むこと以上に噛んでいるかもしれません。

私は、PostgreSQLの​​データ型についてお読みになることをお勧めします。
PostgreSQLは、フルテキスト検索のための柔軟で強力なソリューションを提供しています。

PostgreSQL tsqueryおよびtsvectordata typesを使用すると、あるユーザの説明を別のユーザの説明を照会する形式にすることができます。 tsqueryとtsvectorの両方を動的に生成したり、データベースの列に保存して索引付けすることができます。

まだSQLiteを使用する必要がある場合は、様々なFTS仮想テーブルの種類について知る必要があります。これらはすべて実験的なもので、デフォルトでは有効になっていません。したがって、SQLiteを再コンパイルして、FTS1、FTS2、またはFTS3を有効にする必要があります。

これらの機能のドキュメントは非常にまばらです。ここで私が見つけたすべてです:

関連する問題