ホームページ >データベース >mysql チュートリアル >関連性を高めるために MySQL フルテキスト検索でフィールドに優先順位を付けるにはどうすればよいですか?

関連性を高めるために MySQL フルテキスト検索でフィールドに優先順位を付けるにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 23:37:30534ブラウズ

How Can I Prioritize Fields in MySQL Fulltext Search for Enhanced Relevance?

関連性を高めるための MySQL フルテキスト検索のフィールドの優先順位付け

「キーワード」と「コンテンツ」という 2 つの列がある状況が発生したとします。 、」というテーブルと、両方の列にまたがる基礎となるフルテキスト インデックス。ただし、「キーワード」列に特定の用語を含む行の関連性を、「コンテンツ」列に含む行よりも高くしたいとします。

このタスクを「一致」を使用するコンテキスト内で実行するには、構文を使用して、多面的なアプローチを実装できます。

  1. 複数のフルテキスト インデックスの作成:
    3 つのフルテキスト インデックスを確立:

    • 「キーワード」列のみに 1 つ
    • 「コンテンツ」列のみに 1 つ
    • 「キーワード」列と「コンテンツ」列の両方に 1 つ
  2. 加重関連性計算の利用:
    クエリで、「キーワード」と「コンテンツ」の両方の一致の関連性スコアを個別に取得します。次に、加重加算を使用してこれらのスコアを結合し、「キーワード」の関連性により高い重みを割り当てます:

    SELECT id, keyword, content,
    MATCH (keyword) AGAINST ('watermelon') AS rel1,
    MATCH (content) AGAINST ('watermelon') AS rel2
    FROM table
    WHERE MATCH (keyword,content) AGAINST ('watermelon')
    ORDER BY (rel1*weight_factor)+(rel2) DESC
  3. 結合インデックスによるコントロール呼び出し:
    上記の計算により関連性が決定されるため、検索と関連性のためのインデックスの使用を分離することが重要です。 「キーワード」と「コンテンツ」の両方のインデックスを利用して再現を制御し、関連する行が検索結果に返されるようにします。

このアプローチにより、「キーワード」列の重要性に優先順位を付けることができます。 MySQL 全文検索クエリでのドキュメントの関連性を判断します。計算の重み係数を使用すると、目的の列内の一致する用語の優先順位を微調整できます。

以上が関連性を高めるために MySQL フルテキスト検索でフィールドに優先順位を付けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。