gpt4 book ai didi

mysql - 如何消除 MATCH/AGAINST 中对较短行的偏见?

转载 作者:行者123 更新时间:2023-11-29 00:51:25 30 4
gpt4 key购买 nike

我正在 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 保留为常量。目前它被设置为只搜索“toxic china”。因此,一些不包含中国的结果的排名高于包含该特定搜索关键字的结果,这是出乎意料的。

Search Results

最佳答案

你可能想像这样在 BOOLEAN MODE 中尝试:

AGAINST (
'toxic china' IN BOOLEAN MODE
)

因为这应该只是术语的真/假匹配

关于mysql - 如何消除 MATCH/AGAINST 中对较短行的偏见?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8423451/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com