gpt4 book ai didi

MySQL - 具有特定搜索值 'course' 的 FULLTEXT 搜索问题

转载 作者:可可西里 更新时间:2023-11-01 08:51:04 25 4
gpt4 key购买 nike

我创建了下表。

CREATE TABLE `test` (
`name` VARCHAR(50) NOT NULL,
`id` INT(10) NOT NULL AUTO_INCREMENT,
PRIMARY KEY (`id`),
FULLTEXT INDEX `name` (`name`)
)
COLLATE='utf8_general_ci'
ENGINE=MyISAM;

有以下数据

insert into test (name) values('apple');
insert into test (name) values('course');

我正在使用以下查询进行搜索。

select * from test  where MATCH (name) AGAINST ('apple' IN BOOLEAN MODE);
select * from test where MATCH (name) AGAINST ('course' IN BOOLEAN MODE);

现在的问题是第一个选择查询返回了正确的行。但是第二个查询没有返回任何行。我用其他词进行了测试,它们工作正常。但是,如果数据包含“类(class)”一词,并且当我们搜索“类(class)”时,它不会返回任何行。

谁能帮我解决这个奇怪的问题?

最佳答案

不是最好使用like 运算符吗?

select * from test  where name LIKE 'course';

甚至 REGEXP

select * from test  where name RegexP 'course';

你可以试试:

select * from test  where MATCH (name) AGAINST ('course*' IN BOOLEAN MODE);

虽然它通常在部分单词搜索中失败最多......所以请向我们展示您表格中的一些示例数据。

宾果游戏:MYSQL 似乎充满了stop words .

所以这就是所说的和你需要做的:)

“从 MySQL 5.5.6 开始,如果 character_set_server 是 ucs2、utf16 或 utf32,则使用 latin1 加载和搜索停用词文件。如果任何表是使用 FULLTEXT 索引创建的,而服务器字符集是 ucs2、utf16 或 utf32 , 应该用这个语句修复..

修复表 tbl_name QUICK; "

关于MySQL - 具有特定搜索值 'course' 的 FULLTEXT 搜索问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14154803/

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