使用mysql實現全文檢索功能

2021-09-29 15:09:40 字數 1327 閱讀 1391

檢視系統預設分片規則 預設innodb下 最小分片為3位 空格切分

show variables like '%ft%'; -- 檢視預設分配規則
建表
-- 建立表

create table test (

id int(11) unsigned not null auto_increment,

product_name varchar(255),

content text not null,

primary key(id),

fulltext key content_index(content)

) engine=innodb default charset=utf8;

插入測試資料
-- innodb 預設切片規則為4位 不想修改sql預設分片規則可以手動使用'分隔符'文字分割 末尾帶空格 空格是預設切片規則

-- 分隔符不能使用 + - < > * 空格 這些都是系統預設的符號 會被解析成為語句

insert into test (content) values ('1分隔符 '),('2分隔符 '),('3分隔符 ');

insert into test (content) values ('11分隔符 '),('22分隔符 '),('33分隔符 ');

insert into test (content) values ('111分隔符 '),('222分隔符 '),('333分隔符 ');

insert into test (content) values ('1分隔符 2分隔符 3分隔符 '),('11分隔符 22分隔符 33分隔符 ');

insert into test (content) values ('111分隔符 222分隔符 333分隔符 '),('1111分隔符 2222分隔符 3333分隔符 ');

查詢
select * from test where match(content) against('22分隔符' in boolean mode);

多個條件的查詢語句

select * from test where product_name = 'tom' and match(content) against('"222分隔符"' in boolean mode) and match(content) against('"111分隔符"' in boolean mode);

MySQL啟用中文全文檢索功能

mysql支援對文字進行全文檢索,全文檢索可以類似搜尋引擎的功能,相比較模糊匹配更加靈活高效且更快。mysql5.7之後也支援對中文的全文檢索,這裡描述如何啟用mysql的中文全文檢索。首先,mysql啟用全文檢索要對字段加全文檢索的索引,注意,乙個表只能建立乙個全文檢索字段,如需要檢索多個字段,需...

mysql全文檢索

全文索引在 mysql 中是乙個 fulltext 型別索引。fulltext 索引用於 myisam 表,可以在 create table 時或之後使用 alter table 或 create index 在 char varchar 或 text 列上建立。對於大的資料庫,將資料裝載到乙個沒有...

mysql全文檢索

mysql到版本3.23.23時,開始支援全文檢索,通過語句select from match against 來在整個表中檢索是否有匹配的,全文索引是乙個定義為fulltext的型別索引,應用在myisam表中。值得一提的是對於乙個大的資料庫來說,把資料裝載到乙個沒有fulltext索引的表中,然...