ブールモードでは、(スコアを高くするだけでなく)文字列が存在する必要があり、+
を使用して実行されます。 。プレフィックスの照合は、末尾の*
で行われます。 。これはあなたが望むもののようですので、検索してください:
+John* +S*
+John* +Smith*
+Smith* +J*
+Jo* +S*
フルテキストインデックスは、「単語のどこでも」を検索するのに役立ちません。つまり、*mith*
のようなものです。 失敗するはずです。インデックスの文字1から一致することを意味します。
一致値で並べ替える場合、たとえば、John Smith
が必要です。 前 Johnny Smithson
、これを行います:
SELECT * FROM user
WHERE MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE)
ORDER BY MATCH(..fields..) AGAINST ('match' IN BOOLEAN MODE) DESC;
> =ft_min_word_len
のすべての単語を追加しない限り、どちらが表示されるかはわかりません。 再度個別に:
+John* +S* John
+John* +Smith* John Smith
+Smith* +J* Smith
+Jo* +S*
最後の1つは、どちらもデフォルトの4文字であるため、デフォルトのmysqlに並べ替えパラメータを追加することはできませんが、ft_min_world_len
を設定することはできます。 別の方法が望まれます。