データベースに日付フィールド (Start_date) があり、sphinx で sql_field_string としてインデックスが作成されており、その形式は 2000-12-12 のようになっています。そのフィールドで検索したいときは、次のようなクエリを送信します。
select * from all where match ('@Start_date 2000-12-12');
それは機能していますが、実際には多くの結果があるのに、結果を返さない次のようなOR 演算子を使用してクエリを送信すると問題が発生します。
select * from all where match ('@Start_date 2000-12-12 | 1999-12-12');
そして、値に括弧を使用すると、問題が修正されます!
select * from all where match ('@Start_date (2000-12-12) | (1999-12-12)');
なぜこうなった ?
(「-」文字を charset_table に追加しました)。
sphinx.conf ファイルから:
dict = crc
min_infix_length=3