内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

mysql全文模糊搜索MATCH AGAINST方法

2022-06-10    分類: 網(wǎng)站建設(shè)

ySQL 4.x以上提供了全文檢索支持 MATCH ……AGAINST 模式(不區(qū)分大小寫)
建立全文索引的表的存儲(chǔ)引擎類型必須為MyISAM
問題是match   against對(duì)中文模糊搜索支持不是太好

新建一個(gè)utf8 MyISAM類型的表并建立一個(gè)全文索引  :

CREATE TABLE articles (
id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,
title VARCHAR(200),
body TEXT,
FULLTEXT (title,body)
) ENGINE=MyISAM  DEFAULT >
其中FULLTEXT(title, body) 給title和body這兩列建立全文索引,之后檢索的時(shí)候注意必須同時(shí)指定這兩列。

給這個(gè)表添加點(diǎn)測(cè)試數(shù)據(jù)

INSERT INTO articles (title,body) VALUES
('MySQL Tutorial','DBMS stands for DataBase ...'),
('How To Use MySQL Well','After you went through a ...'),
('Optimizing MySQL','In this tutorial we will show ...'),
('1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),
('MySQL vs. YourSQL','In the following database comparison ...'),
('MySQL Security','When configured properly, MySQL ...');
3. 全文檢索測(cè)試

SELECT * FROM articles   WHERE MATCH (title,body) AGAINST ('database');
注意 MATCH (title,body) 里面的值必須是前面建立全文索引的兩個(gè)字段不能少。

mysql 默認(rèn)支持全文檢索的字符長(zhǎng)度是4,可以用SHOW VARIABLES LIKE 'ft_min_word_len' 來(lái)查看指定的字符長(zhǎng)度,也可以在mysql配置文件my.ini 更改最小字符長(zhǎng)度,方法是在my.ini 增加一行 比如:ft_min_word_len = 2,改完后重啟mysql即可。

另外,MySQL還會(huì)計(jì)算一個(gè)詞的權(quán)值,以決定是否出現(xiàn)在結(jié)果集中,具體如下:

mysql在集和查詢中的對(duì)每個(gè)合適的詞都會(huì)先計(jì)算它們的權(quán)重,一個(gè)出現(xiàn)在多個(gè)文檔中的詞將有較低的權(quán)重(可能甚至有一個(gè)零權(quán)重),因?yàn)樵谶@個(gè)特定的集中,它有較低的語(yǔ)義值。否則,如果詞是較少的,它將得到一個(gè)較高的權(quán)重,mysql默認(rèn)的閥值是50%,上面‘you’在每個(gè)文檔都出現(xiàn),因此是100%,只有低于50%的才會(huì)出現(xiàn)在結(jié)果集中。

全文檢索語(yǔ)法
SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple -banana' IN BOOLEAN MODE);   + 表示AND,即必須包含。- 表示NOT,即不包含。

SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('apple banana' IN BOOLEAN MODE);   apple和banana之間是空格,空格表示OR,即至少包含apple、banana中的一個(gè)。

SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple banana' IN BOOLEAN MODE);   必須包含apple,但是如果同時(shí)也包含banana則會(huì)獲得更高的權(quán)重。

SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple ~banana' IN BOOLEAN MODE);   ~ 是我們熟悉的異或運(yùn)算符。返回的記錄必須包含apple,但是如果同時(shí)也包含banana會(huì)降低權(quán)重。但是它沒有 +apple -banana 嚴(yán)格,因?yàn)楹笳呷绻琤anana壓根就不返回。

SELECT * FROM articles WHERE MATCH (title,body)     AGAINST ('+apple +(>banana 網(wǎng)站欄目:mysql全文模糊搜索MATCH AGAINST方法
分享URL:http://www.rwnh.cn/news/165924.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)靜態(tài)網(wǎng)站、用戶體驗(yàn)、響應(yīng)式網(wǎng)站、全網(wǎng)營(yíng)銷推廣、自適應(yīng)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司
中宁县| 昌邑市| 调兵山市| 珠海市| 宜章县| 卢氏县| 禄劝| 崇文区| 安龙县| 红河县| 大竹县| 壶关县| 贡嘎县| 武城县| 涞水县| 凯里市| 清苑县| 焉耆| 萍乡市| 马鞍山市| 同江市| 荣昌县| 洮南市| 财经| 社会| 白朗县| 长乐市| 北票市| 侯马市| 曲麻莱县| 淮南市| 安塞县| 贵州省| 开平市| 隆子县| 新河县| 吉隆县| 临汾市| 娄底市| 信丰县| 贡觉县|