- 首先需要在表中指定全文搜索的列。
建立表的时候直接添加全文搜索:
CREATE TABLE `member` (
`id` int(11) DEFAULT NULL,
`name` char(200) DEFAULT NULL,
FULLTEXT(`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
创建表之后,添加全文搜索列。
查询的时候需要用同样的列,顺序也必须完全相同。
CREATE fulltext INDEX index_name1 ON table_name(name);
`
2. 如何使用全文搜索的列:
用match(列名) against(匹配表达式)
举例:
SELECT
NAME,
MATCH (NAME) AGAINST ('haha' IN boolean MODE)
FROM
member
WHERE
MATCH (NAME) AGAINST ('haha' IN boolean MODE);
另外为了扩大搜索的范围,可以使用with query expansion。
in boolean mode,可以控制更加严格的查找规则。
- +:必须有这个词。
- -:不允许有这个词。
- 几个词 直接用空格:表示可有可无某个词。
- <减小等级限制。
- >增大等级限制。
- 关于等级这个概念,越符合查询条件的等级越高。