ブールモードでは、(スコアを高くするだけでなく)文字列が存在する必要があり、+を使用して実行されます。 。プレフィックスの照合は、末尾の*で行われます。 。これはあなたが望むもののようですので、検索してください:
+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を設定することはできます。 別の方法が望まれます。