MySQL 全文検索での関連性の優先順位付けの実現
複数のフィールドにわたって全文検索を実行する場合、MySQL は各フィールドで見つかった一致に同等の関連性を割り当てます。ただし、特定のフィールドを優先して、全体の関連性スコアにより大きく貢献することが望ましいシナリオもあるでしょう。
解決策: 加重インデックスを作成します
これを実現するには、複数の全文インデックスを作成します:
関連性を重み付けしたクエリの例
MATCH (キーワード) AGAINST を使用する (... ) 関数と MATCH (コンテンツ) AGAINST (...) 関数を使用すると、フィールドごとに個別の関連性スコアを計算できます。 CASE ステートメントは、特定のフィールドに検索語が含まれるかどうかを示すバイナリ値を割り当てます:
SELECT *, CASE WHEN Keywords LIKE '%watermelon%' THEN 1 ELSE 0 END AS keywordmatch, CASE WHEN Content LIKE '%watermelon%' THEN 1 ELSE 0 END AS contentmatch,
以上がMySQL フルテキスト検索でさまざまなフィールドの関連性に優先順位を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。