フルテキストを使用した検索の関連性とフィルター処理 (照合) に問題があり、以下で説明します。
150 万件を超えるレコードを含む Songs というテーブルがあります。このテーブルには多くの列が含まれており、そのうちの 2 つは名前とアーティストであり、これら 2 つの列は全文索引付けされています。
値と正確に一致するタイトルと曲を検索すると、低いスコアが表示されます。たとえば、私にとっては意味がありません。
データ:
name | artist
------------- | ------------
Glad You Came | Boyce Avenue
以下のクエリを実行すると、次のようになります。
SELECT name, artist,
MATCH(name, artist) AGAINST('+glad +you +came +Boyce +Avenue' IN BOOLEAN MODE) AS score
FROM live_lyric.songs
WHERE MATCH(name, artist) AGAINST('+glad +you +came +Boyce +Avenue' IN BOOLEAN MODE)
name | artist | score
------------- | ------------ | ------------------
Glad You Came | Boyce Avenue | 54.727073669433594
完全一致を探していますが、なぜ 54.7 になるのでしょうか??
+記号を削除すると
SELECT name, artist,
MATCH(name, artist) AGAINST('glad you came Boyce Avenue' IN BOOLEAN MODE) AS score
FROM live_lyric.songs
WHERE MATCH(name, artist) AGAINST('glad you came Boyce Avenue' IN BOOLEAN MODE)
まったく関係のない他の多くの記録についても、同様の回答をするつもりです。
私にとって、「+」記号を使用した検索は 100 近くになるはずですが、そうでないのはなぜですか?どうすれば改善できますか?