2011-12-07 15 views
1

MATCH/AGAINSTの手順を実装している、MySQLのMyISAMテーブルの簡単な検索インターフェイスで作業しています。MATCH/AGAINSTの短い行に対するバイアスを除去するにはどうすればよいですか?

一見するとうまくいくようですが、さらに検査すると、行の長さが短くなる傾向があります。私は、一致する単語の割合が高いので、スコアが高くなければならないので、これが想像できるだけです。

ここに私が使用しているMySQLデータベースへのクエリがあり、その結果は以下のスクリーンショットのアプリケーションからのものです。簡単のため

SELECT 
      report, 
      status, 
      GROUP_CONCAT(DISTINCT status) AS statuses, 
      GROUP_CONCAT(DISTINCT docID) AS docIDs, 
      GROUP_CONCAT(DISTINCT analyst) AS analysts, 
      GROUP_CONCAT(DISTINCT region) AS regions, 
      GROUP_CONCAT(DISTINCT country) AS countries, 
      GROUP_CONCAT(DISTINCT topic) AS topics, 
      GROUP_CONCAT(DISTINCT date) AS dates, 
      MAX(date) AS date, 
      MIN(date) AS mindate, 
      MAX(docID) AS docID, 
      GROUP_CONCAT(DISTINCT event) AS events, 
      GROUP_CONCAT(DISTINCT rule) AS rules, 
      GROUP_CONCAT(DISTINCT link SEPARATOR ' ') AS links, 
      GROUP_CONCAT(DISTINCT province) AS provinces, 
      MATCH (
       region, country, province, topic, event 
      ) 
      AGAINST (
       'toxic china' 
      ) AS score 
      FROM search_reports 
      GROUP BY report 
      ORDER BY score DESC 

私はこの問題を働いている間、私は定数としてAGAINSTに残っています。現在、それは「毒性の中国」を検索するように設定されています。したがって、中国を含まないいくつかの結果が、その特定の検索キーワードを含む結果よりも高いランク付けされていることは予想外である。あなたはとても似BOOLEAN MODEを試してみたいことがあります

Search Results

答えて

1

:このよう

AGAINST (
     'toxic china' IN BOOLEAN MODE 
) 

だけの用語

+0

に真/偽一致する必要がありますこれは大きな大きな違いを作りました。ありがとうございました。 –

関連する問題