0

フルテキストを使用した検索の関連性とフィルター処理 (照合) に問題があり、以下で説明します。

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 近くになるはずですが、そうでないのはなぜですか?どうすれば改善できますか?

4

1 に答える 1