mysql fulltext搜索_mysql 全文搜索的FULLTEXT

FULLTEXT索引

创建FULLTEXT索引语法

创建table的时候创建fullText索引

CREATE TABLE table_name(

column1 data_type,

column2 data_type,

column3 data_type,

PRIMARY_KEY(key_column),

FULLTEXT key key_name (column1,column2,..)

);

在已存在的table上面创建fullText索引

ALTER TABLE table_name

ADD FULLTEXT(column_name1, column_name2,…)

使用create index 语句创建fullText索引

CREATE FULLTEXT INDEX index_name

ON table_name(idx_column_name,...)

删除全文搜索列

alter table tablename drop index indexname;

FULLText索引的使用

注意事项

1、mysql默认的全文检索的字符长度为4,使用:SHOW VARIABLES LIKE 'ft_min_word_len' ;可查看设置的检索长度。可修改mysql的my.ini 更改最小字符长度,如在my.ini添加配置项 ft_min_word_len=1

2、MySQL规定全文搜索中被搜索的单词所在的行数大于等于被搜索的所有行数的一半时候,就将被搜索单词作为Common word,即不被显示。

FULLTEXT使用语法 (此段链接http://www.lao8.org/article_1602/MATCH_AGAINST_mysql)

-- 查找product_name,description均包含Lenovo的记录

SELECT * FROM product WHERE MATCH(product_name,description) AGAINST('Lenovo')

-- + 表示AND,即必须包含。- 表示NOT,即不包含。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple -banana' IN BOOLEAN MODE);

-- apple和banana之间是空格,空格表示OR,即至少包含apple、banana中的一个。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('apple banana' IN BOOLEAN MODE);

-- 必须包含apple,但是如果同时也包含banana则会获得更高的权重。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple banana' IN BOOLEAN MODE);

-- ~ 是我们熟悉的异或运算符。返回的记录必须包含apple,但是如果同时也包含banana会降低权重。但是它没有 +apple -banana 严格,因为后者如果包含banana压根就不返回。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple ~banana' IN BOOLEAN MODE);

--返回同时包含apple和banana或者同时包含apple和orange的记录。但是同时包含apple和banana的记录的权重高于同时包含apple和orange的记录。

SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('+apple +(>banana

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值