0

以下のようなクエリを使用しています。

SELECT id, description 
FROM FullTextTable
WHERE FullTextTable MATCH '1.010 OR 1.01 OR 1.0100'

'OR' 演算子を 2 つだけ使用すると、クエリは期待どおりに返されますが、3 つ以上の 'OR' 演算子を使用しようとすると結果が得られません。3 つ以上の値のいずれかをチェックするクエリをどのように表現しますか?

これは、Sqlite FTS4 標準の全文クエリ構文を使用しています。これは、括弧を使用して操作の順序を変更することをサポートしていないと思います。

任意の精度レベルの小数値を含む説明があり、ユーザーは説明に格納されているものと同じ精度レベルで検索するとは限りません (たとえば、ユーザーは 1.010 を検索したいかもしれませんが、説明は実際には 1.01 と表現されています)。または 1.0100 であり、ユーザーはこれを事前に知りません)。

4

1 に答える 1

2

デフォルトのトークナイザーでは、ピリオドは単語の一部ではありません。あなたのクエリは

... MATCH '1 010 OR 1 01 OR 1 0100'

代わりにフレーズ クエリを使用します。

... MATCH '"1.010" OR "1.01" OR "1.0100"'
于 2014-10-23T17:56:01.767 に答える