gpt4 book ai didi

MySql "MATCH"无法使用特定单词

转载 作者:行者123 更新时间:2023-11-29 08:08:11 26 4
gpt4 key购买 nike

我在 mysql 查询中遇到一个奇怪的问题,其中使用 MATCH-AGAINST 对某些单词起作用,而对其他单词不起作用,这是返回 0 行的特定查询:

SELECT * from series WHERE MATCH (name_e,name_a)  AGAINST ("One");

1-我使用的是utf8_general_ci,所以它不是区分大小写的问题

2- 其他 3 个字符搜索会返回正确的结果(例如“Key”),因此这不是最小字符数问题。

这是表结构:

CREATE TABLE `series` (
`series_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`brand_id` int(10) unsigned NOT NULL,
`merchandise_id` int(10) unsigned NOT NULL,
`name_a` varchar(45) NOT NULL,
`name_e` varchar(45) NOT NULL,
`desc_a` text,
`desc_e` text,
`added_by` int(11) NOT NULL DEFAULT '4',
`approved` tinyint(1) NOT NULL DEFAULT '1',
PRIMARY KEY (`series_id`),
KEY `uniqueEntry` (`brand_id`,`name_e`),
FULLTEXT KEY `nameIndex` (`name_e`,`name_a`)
)

这是一些用于测试的示例数据:

INSERT INTO `series`(`series_id`,`brand_id`,`merchandise_id`,`name_a`,`name_e`,`desc_a`,`desc_e`,`added_by`,`approved`)
VALUES ('9', '39', '164', 'Aspire One', 'Aspire One', NULL, NULL, '4', '1');
INSERT INTO `series`(`series_id`,`brand_id`,`merchandise_id`,`name_a`,`name_e`,`desc_a`,`desc_e`,`added_by`,`approved`)
VALUES ('10', '54', '164', 'One', 'One', NULL, NULL, '4', '1');
INSERT INTO `series`(`series_id`,`brand_id`,`merchandise_id`,`name_a`,`name_e`,`desc_a`,`desc_e`,`added_by`,`approved`)
VALUES ('284', '70', '173', 'Key', 'Key', NULL, NULL, '53', '1');

最佳答案

“One”位于 MySQL 停用词文件中。

http://dev.mysql.com/doc/refman/5.5/en/fulltext-stopwords.html

过滤掉停用词,以防止常见词影响结果。

您可以使用以下设置来设置自己的停用词列表:“要覆盖默认的停用词列表,请设置 ft_stopword_file 系统变量。” http://dev.mysql.com/doc/refman/5.5/en/fulltext-fine-tuning.html

关于MySql "MATCH"无法使用特定单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22296771/

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