引用符で囲まれたハイフン付きの検索文字列に問題があるか、理解に問題があります。
私のテーブルには、「会社」という列のテーブルがあります。
その列のエントリの1つは次のとおりです。AZElectro
次の例は非常に単純化されていますが(実際のクエリははるかに複雑ですが)、効果は同じです。
次の検索を実行すると、上記の会社の行が表示されません。
SELECT i.*
FROM my_table i
WHERE MATCH (i.company) AGAINST ('+\"A-Z\" +Electro*' IN BOOLEAN MODE)
GROUP BY i.uid ORDER BY i.company ASC LIMIT 0, 40;
次の検索を行う場合は、上記の会社の行を取得します(「AZ」の前に-を+に変更しただけです。
SELECT i.*
FROM my_table i
WHERE MATCH (i.company) AGAINST ('-\"A-Z\" +Electro*' IN BOOLEAN MODE)
GROUP BY i.uid ORDER BY i.company ASC LIMIT 0, 40;
演算子を完全に削除すると、行も取得します。
SELECT i.*
FROM my_table i
WHERE MATCH (i.company) AGAINST ('\"A-Z\" +Electro*' IN BOOLEAN MODE)
GROUP BY i.uid ORDER BY i.company ASC LIMIT 0, 40;
誰かが私にこの行動を説明できますか?+で検索すると、結果も得られるはずです...
編集
myisam_ftdumpでテーブルインデックスをチェックしました。
14f2e8 0.7908264 ab
3a164 0.8613265 dv のようなエントリがあるため、2文字の単語は適切に索引付けされます
エントリもあります:
de340 0.6801047 az
これはAZのエントリであると思います-したがって、検索でこのエントリが見つかるはずですよね?