FTS4 を使用した SQLite データベースがあります。次の形式のメッセージ ID を持つ電子メールを保存するために使用されます。
FTS MATCH 構文を使用してメッセージを検索すると、次の結果が得られます。
SELECT rowid FROM emails WHERE emails MATCH '<8200@comms.io>'
これにより、正しい行が返されます。しかし、複数のメールを検索しようとすると、空の応答が返されます。
SELECT rowid FROM emails WHERE emails MATCH '<8200@comms.io> OR <8188@comms.io>'
奇妙なことに、山括弧文字なしで検索できます。これは両方の行を返します。
SELECT rowid FROM emails WHERE emails MATCH '8200@comms.io OR 8188@comms.io'
これは、格納された列に山かっこが存在する場合でもです。これらが SQLite の特殊文字であるという言及は見つかりません。「OR」がなければ、単一用語検索は正常に機能します。
複合検索でこれらの文字の扱いが異なるのはなぜですか?