mysql - 全文搜索不适用于关键字 "one"

标签 mysql

嗨,我在全文搜索中遇到了一个奇怪的问题。

我的查询是。

SELECT  `itemid`, `title`,  `image`, 
  MATCH( `itemid`, `title`, `product_id`,`p1_name`, `p2_name`) 
  AGAINST ("+samsung +one" IN BOOLEAN MODE ) AS score 
FROM `tablename` 
WHERE `active_flag`='1' AND `image`!='' 
  AND `new_price`>'0' AND 
  MATCH( `itemid`, `title`, `product_id`,`p1_name`, `p2_name`) AGAINST ( "+samsung +one" IN BOOLEAN MODE ) !=0 
  ORDER BY score DESC;

这给我的数据与全文索引字段中的单词“one”不匹配。 即使我包含任何单词或所有这些单词,如“一二三四”作为搜索参数,它也会给我结果。

最佳答案

Mysql 全文索引实现了“停用词”——搜索时忽略的常用词,例如“a”、“the”等,甚至一些很长的词,如“corresponding”。

默认的停用词列表包括单词“one”,这就是它没有获得任何匹配项的原因。参见 this link查看完整列表。

您可以通过编辑此文件来控制列表:

myisam/ft_static.c

关于mysql - 全文搜索不适用于关键字 "one",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20881190/

相关文章:

mySQL 将行复制并粘贴到同一个表的末尾

mysql - 将复杂查询存储为命名查询

php - 大于 bigint 的 MySQL 字段

mysql - mysql 5.1 的正则表达式(根据用户输入查找条目)

MYSQL:返回与 GROUP BY 的最高数字关联的值

mysql - 嵌套 IF 语句是否无法按照我的预期工作?

mysql - 是否有可能在一个联盟中有一个联盟?

php - Mysql更新语句不会执行

mysql - Oracle SQL 中的多次插入像 MySQL 一样吗?

php - 如何显示从 Blade 到 Blade 选择的日期?