快速业务通道

MySQL全文搜索

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-03-18
l” 要高一点
apple*
... 包含 “apple”,“apples”,“applesauce” 和 “applet”
"some words"
... 可以包含 “some words of wisdom”,但不是 “some noise words”
 全文的限制
MATCH()函数的所有参数必须是从来自于同一张表的列,同时必须是同一个FULLTEXT索引中的一部分,除非MATCH()是IN BOOLEAN MODE的。

MATCH()列列表必须确切地匹配表的某一FULLTEXT索引中定义的列列表,除非MATCH()是IN BOOLEAN MODE的。

AGAINST()的参数必须是一个常量字符串。
微调 MySQL 全文搜索
不幸地,全文搜索仍然只有很少的用户可调参数,虽然增加一些在 TODO 上排列很高。如果你有一个 MySQL 源码发行,你可以发挥对全文搜索的更多控制。

注意,全文搜索为最佳的搜索效果,被仔细地调整了。修改默认值的行为,在大多数情况下,只会使搜索结果更糟。不要修改 MySQL 的源代码,除非你知道你在做什么!

被索引的词的最小长度由 MySQL 变量ft_min_word_len指定。

stopword 列表可以从ft_stopword_file变量指定的文件中读取。

50% 阈值选择由所选择的特殊的衡量模式确定。为了禁止它,修改`myisam/ftdefs.h''文件中下面的一行:
#define GWS_IN_USE GWS_PROB改为:
#define GWS_IN_USE GWS_FREQ然后重新编译 MySQL。在这种情况下,不需要重建索引。注意:使用了这个,将严重地减少 MySQL 为MATCH()提供足够的相似性值的能力。如果你确实需要搜索这样的公共词,最好使用IN BOOLEAN MODE的搜索代替,它不遵守 50% 的阈值。

有时,搜索引擎维护员希望更改使用于逻辑全文搜索的操作符。这些由变量ft_boolean_syntax定义。对于这些更改,要求你重建你的FULLTEXT索引,对于一个 MyISAM 表,最容易的重建索引文件的方式如下面的语句:
mysql> REPAIR TABLE tbl_name QUICK;全文搜索 TODO
使所有对FULLTEXT索引的操作更快
邻近(Proximity)操作符
对 "always-index words" 的支持。他们可以是用户希望视为一个词处理的任意字符串,例如 "C++"、"AS/400"、"TCP/ip",等等
支持在MERGE表中的全文搜索
对多字节字符的支持
依照数据的语言建立 stopword 列表
Stemming (当然,依赖于数据的语言)
Generic user-suppliable UDF preparser.
使模式更加灵活 (通过为CREATE/ALTER TABLE中的FULLTEXT增加某些可调整参数)

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号