これはグーグルにとって簡単な質問だと思いました。でも見つからなかった。
次のクエリがあるとします。
SELECT name, MATCH (name) AGAINST ('vision black*' IN BOOLEAN MODE) as rel
FROM (`phppos_items`)
WHERE MATCH (name) AGAINST ('vision black*' IN BOOLEAN MODE) AND `deleted` = 0
ORDER BY `rel` DESC LIMIT 100
一致スコアが高いほど関連性がありますか?誰かがこれを説明する正しいmysqlのマニュアルページを私に示すことができますか?
単純な観察に基づくと、スコアが高いほど良いようです。
Natural Language Full-Text Searches の下のMySQLドキュメント
段落1
デフォルトまたはIN NATURAL LANGUAGE MODE修飾子を使用すると、 MATCH() 関数は、テキストコレクションに対して文字列の自然言語検索を実行します。コレクションは、FULLTEXTインデックスに含まれる1つ以上の列のセットです。検索文字列は、引数として AGAINST() に指定されます。 *テーブルの各行について、 ** MATCH()は関連性の値を返します。つまり、 MATCH() list ***で指定された列の、その行の検索文字列とテキストの間の類似性の測定。
パラグラフ3
前述の例のように、WHERE句で MATCH() を使用すると、返される行は最初に関連性の高い順に自動的にソートされます。関連性の値は、負でない浮動小数点数です。ゼロ関連性は類似性がないことを意味します。 関連性は、行内の単語数、その行内の一意の単語数、コレクション内の単語の総数、およびドキュメントの数(特定のWordを含む行)。
ブール検索を行う場合、 MATCH() は0または1を返します。
MyISAMテーブルに対して myisam_ftdump ユーティリティを使用して、単語とその頻度の完全なリストを取得できます。
MySQL Documentation(Boolean Full-Text Searches) のサブヘッダーRelevancy Rankings for InnoDB Boolean Mode Search
の下にあるInnoDBがブールフルテキスト検索の関連性を計算する方法についての素晴らしい説明があります。