免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2551 | 回复: 7
打印 上一主题 下一主题

如何作中文全文搜索? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-12-03 14:05 |只看该作者 |倒序浏览
请教关于中文搜索的相关技巧,
我找到的方法是用fulltext索引,但是没搜索出中文 -_-!


  1. CREATE TABLE ft_test (
  2.        id                 INT PRIMARY KEY AUTO_INCREMENT,
  3.        subject             VARCHAR(255) NOT NULL DEFAULT '',
  4.        content             TEXT          NOT NULL DEFAULT '',
  5.        fulltext(subject, content)
  6. ) CHARSET utf8;

  7. mysql> select * from ft_test;
  8. +----+----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  9. | id | subject                                                                    | content                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
  10. +----+----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  11. |  1 | 在mysql中使用全文索引                                              | 全文检索在 MySQL 中就是一个 FULLTEXT 类型索引。FULLTEXT 索引用于  MyISAM 表,可以在 CREATE TABLE 时或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、 VARCHAR 或 TEXT 列上创建。对于大的数据库,将数据装载到一个没有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE  (或 CREATE INDEX) 创建索引,这将是非常快的。将数据装载到一个已经有 FULLTEXT 索引的表中,将 是非常慢的。
  12. |
  13. |  2 | 1.使用Mysql全文检索fulltext的先决条件周杰伦年赚 7亿台币 | 晚报讯 经济虽不景气,但不少台湾歌手今年收入仍再创新高。近5年平均年收入都2亿 多新台币的周杰伦(周董),今年靠创作、演唱、导、演、广告等五路通吃,收入7亿多新台币(约1.4亿元人民币),创下吸金传奇。近10年转往内地发展的周华 健,以4.6亿新台币(约9千万元人民币)收入列亚军。
  14.                                                                                   |
  15. |  3 | 周杰伦影歌通吃最会赚                                             | 周董不愧是走红全亚洲的人气王,他的广告、演唱“单价”都是艺界翘楚,平 均一场个唱就有1000万新台币的唱酬,加上他抢钱不手软,价与量双管齐下,在唱片业不景气的年代逆势上扬,收入比去年多出近2倍
  16.                                                                                                                                                                                               |
  17. |  4 | 季军蔡依林是女艺人之冠                                          | 整体而言,今年的竞争比去年激烈,进榜歌手表现普遍优于去年、且要突破亿元大关,才挤得进十大榜单。而在唱片销量逐年递减的大环境,也不难看出歌手吸金结构的改变,代言、演唱会和商演,是最大宗的收入来源。
  18.                                                                                                                                                                               |
  19. +----+----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
  20. 4 rows in set (0.00 sec)

  21. mysql> select id from ft_test where match(subject,content) against("Mysql");
  22. +----+
  23. | id |
  24. +----+
  25. |  1 |
  26. +----+
  27. 1 row in set (0.00 sec)

  28. mysql> select id from ft_test where match(subject,content) against("fulltext");
  29. +----+
  30. | id |
  31. +----+
  32. |  1 |
  33. +----+
  34. 1 row in set (0.00 sec)

  35. mysql> select id from ft_test where match(subject,content) against("周杰伦");
  36. Empty set (0.00 sec)

  37. mysql> select id from ft_test where match(subject,content) against("结构");
  38. Empty set (0.00 sec)



复制代码


my.conf添加了:
ft_min_word_len = 2
ft_stopword_file = ''
没家那些分词字典


问题:
英文搜索的时候为什么只搜索到了一个?
中文如何才能搜索到?

谢谢!

论坛徽章:
0
2 [报告]
发表于 2008-12-03 15:50 |只看该作者
???

论坛徽章:
0
3 [报告]
发表于 2008-12-04 09:35 |只看该作者
是问题太菜还是太难?

论坛徽章:
0
4 [报告]
发表于 2008-12-04 10:37 |只看该作者
去搜一下mysql 中文分词就知道了

论坛徽章:
0
5 [报告]
发表于 2008-12-04 14:40 |只看该作者
sphinx can help you

论坛徽章:
0
6 [报告]
发表于 2008-12-05 09:46 |只看该作者
也想知道!!!!!!!!!!!!!!!!!

论坛徽章:
0
7 [报告]
发表于 2008-12-05 11:54 |只看该作者
+----+----------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
这个很恶心,不能去掉么,我在查一个表的时候,这个都占了几页了,但是我的字段和字段内容都很短很简单的,不知道为什么。

论坛徽章:
0
8 [报告]
发表于 2008-12-05 13:44 |只看该作者
要不试试竖过来显示:
select * from ft_test\G
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP