首页 新闻 搜索 专区 学院

MYSQL 的全文检索 MATCH()AGAINST

0
悬赏园豆:50 [待解决问题]

这是我的建表语句:

CREATE TABLE `productkeyword` (
  `prod_id` char(8) COLLATE utf8mb4_bin NOT NULL,
  `ngram_keyword` text COLLATE utf8mb4_bin,
  `word_keyword` text COLLATE utf8mb4_bin,
  `popular` int(11) DEFAULT NULL,
  `sale_dt` varchar(24) COLLATE utf8mb4_bin DEFAULT NULL,
  `content_div` tinyint(4) DEFAULT NULL,
  PRIMARY KEY (`prod_id`),
  KEY `popular` (`popular`,`prod_id`) USING BTREE,
  KEY `sale_dt` (`sale_dt`,`prod_id`) USING BTREE,
  KEY `content_div` (`content_div`) USING BTREE,
  FULLTEXT KEY `ngram_keyword` (`ngram_keyword`),
  FULLTEXT KEY `word_keyword` (`word_keyword`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

SQL语句:

SELECT
 *
FROM
 productkeyword AS i
where
 MATCH (i.ngram_keyword) AGAINST (
 '検索' IN BOOLEAN MODE
)

注:关键字为日文的汉子,日文半角拼音,数字或假名。

现状:

数据库的数据和结构是我从服务器上直接传输过来的,所以数据库的编码和表的结构是和本地完全一致的。但是同样的sql语句我在服务器的数据库上就可以检索到数据,本地的检索不到。

数据库是MySQL Server 5.5

my.ini的文件中的配置 ft_min_word_len = 1已经在[mysqld]的后面追加了。而且

服务器也已经重启过了。但是仍然检索不到数据。拜托各位帮我看看问题在哪里,该如何解决。

 

园源的主页 园源 | 初学一级 | 园豆:155
提问于:2014-05-16 16:59
< >
分享
所有回答(1)
0

你本地数据库有数据吗?

单恋 | 园豆:678 (小虾三级) | 2014-05-30 17:39

数据库的数据都是有的,而且表中的数据都是完全一样的,所以我猜测可能是什么地方的配置的问题

支持(0) 反对(0) 园源 | 园豆:155 (初学一级) | 2014-05-30 18:04

@园源: 你有没有试过,不加条件时,能查出数据吗?如果不能查出,就是其他问题了。表示没遇到过

支持(0) 反对(0) 单恋 | 园豆:678 (小虾三级) | 2014-05-30 18:56

@单恋: 试过,检索语句带其他的条件都可以查询的到,但是只要加了全文检索的数据,就不能检索到,全文检索的关键字无论是字母还是其他的汉子什么的,都不行。

支持(0) 反对(0) 园源 | 园豆:155 (初学一级) | 2014-06-06 15:02
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册