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を試してみたいことがあります
に真/偽一致する必要がありますこれは大きな大きな違いを作りました。ありがとうございました。 –