<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        適宜做簡單搜索的MySQL數據庫全文索引_MySQL

        來源:懂視網 責編:小采 時間:2020-11-09 17:25:42
        文檔

        適宜做簡單搜索的MySQL數據庫全文索引_MySQL

        適宜做簡單搜索的MySQL數據庫全文索引_MySQL:全文索引在 MySQL 中是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上創建。對于大的數據庫,將數據裝載到一個沒有 FULLTEXT 索引的表
        推薦度:
        導讀適宜做簡單搜索的MySQL數據庫全文索引_MySQL:全文索引在 MySQL 中是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上創建。對于大的數據庫,將數據裝載到一個沒有 FULLTEXT 索引的表

        全文索引在 MySQL 中是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上創建。對于大的數據庫,將數據裝載到一個沒有 FULLTEXT 索引的表中,然后再使用 ALTER TABLE (或 CREATE INDEX) 創建索引,這將是非常快的。將數據裝載到一個已經有 FULLTEXT 索引的表中,將是非常慢的。

        全文搜索通過 MATCH() 函數完成:

        mysql> CREATE TABLE articles (

        -> id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,

        -> title VARCHAR(200),

        -> body TEXT,

        -> FULLTEXT (title,body)

        -> );

        Query OK, 0 rows affected (0.00 sec)


        mysql> INSERT INTO articles VALUES

        -> (NULL,'MySQL Tutorial', 'DBMS stands for DataBase ...'),

        -> (NULL,'How To Use MySQL Efficiently', 'After you went through a ...'),

        -> (NULL,'Optimising MySQL','In this tutorial we will show ...'),

        -> (NULL,'1001 MySQL Tricks','1. Never run mysqld as root. 2. ...'),

        -> (NULL,'MySQL vs. YourSQL', 'In the following database comparison ...'),

        -> (NULL,'MySQL Security', 'When configured properly, MySQL ...');

        Query OK, 6 rows affected (0.00 sec)

        Records: 6 Duplicates: 0 Warnings: 0


        mysql> SELECT * FROM articles

        -> WHERE MATCH (title,body) AGAINST ('database');

        +----+-------------------+------------------------------------------+

        | id | title | body |

        +----+-------------------+------------------------------------------+

        | 5 | MySQL vs. YourSQL | In the following database comparison ... |

        | 1 | MySQL Tutorial | DBMS stands for DataBase ... |

        +----+-------------------+------------------------------------------+

        2 rows in set (0.00 sec)

        函數 MATCH() 對照一個文本集(包含在一個 FULLTEXT 索引中的一個或多個列的列集)執行一個自然語言搜索一個字符串。搜索字符串做為 AGAINST() 的參數被給定。搜索以忽略字母大小寫的方式執行。對于表中的每個記錄行,MATCH() 返回一個相關性值。即,在搜索字符串與記錄行在 MATCH() 列表中指定的列的文本之間的相似性尺度。


        當 MATCH() 被使用在一個 WHERE 子句中時 (參看上面的例子),返回的記錄行被自動地以相關性從高到底的次序排序。相關性值是非負的浮點數字。零相關性意味著不相似。相關性的計算是基于:詞在記錄行中的數目、在行中唯一詞的數目、在集中詞的全部數目和包含一個特殊詞的文檔(記錄行)的數目。


        它也可以執行一個邏輯模式的搜索。這在下面的章節中被描述。


        前面的例子是函數 MATCH() 使用上的一些基本說明。記錄行以相似性遞減的順序返回。 下一個示例顯示如何檢索一個明確的相似性值。如果即沒有 WHERE 也沒有 ORDER BY 子句,返回行是不排序的。


        mysql> SELECT id,MATCH (title,body) AGAINST ('Tutorial') FROM articles;

        +----+-----------------------------------------+

        | id | MATCH (title,body) AGAINST ('Tutorial') |

        +----+-----------------------------------------+

        | 1 | 0.64840710366884 |

        | 2 | 0 |

        | 3 | 0.66266459031789 |

        | 4 | 0 |

        | 5 | 0 |

        | 6 | 0 |

        +----+-----------------------------------------+

        6 rows in set (0.00 sec)

        下面的示例更復雜一點。查詢返回相似性并依然以相似度遞減的次序返回記錄行。為了完成這個結果,你應該指定 MATCH() 兩次。這不會引起附加的開銷,因為 MySQL 優化器會注意到兩次同樣的 MATCH() 調用,并只調用一次全文搜索代碼。

        mysql> SELECT id, body, MATCH (title,body) AGAINST

        -> ('Security implications of running MySQL as root') AS score

        -> FROM articles WHERE MATCH (title,body) AGAINST

        -> ('Security implications of running MySQL as root');

        +----+-------------------------------------+-----------------+

        | id | body | score |

        +----+-------------------------------------+-----------------+

        | 4 | 1. Never run mysqld as root. 2. ... | 1.5055546709332 |

        | 6 | When configured properly, MySQL ... | 1.31140957288 |

        +----+-------------------------------------+-----------------+

        2 rows in set (0.00 sec)


        MySQL 使用一個非常簡單的剖析器來將文本分隔成詞。一個“詞”是由文字、數據、“'” 和 “_” 組成的任何字符序列。任何在 stopword 列表上出現的,或太短的(3 個字符或更少的)的 “word” 將被忽略。


        在集和查詢中的每個合適的詞根據其在集與查詢中的重要性衡量。這樣,一個出現在多個文檔中的詞將有較低的權重(可能甚至有一個零權重),因為在這個特定的集中,它有較低的語義值。否則,如果詞是較少的,它將得到一個較高的權重。然后,詞的權重將被結合用于計算記錄行的相似性。


        這樣一個技術工作可很好地工作與大的集(實際上,它會小心地與之諧調)。 對于非常小的表,詞分類不足以充份地反應它們的語義值,有時這個模式可能產生奇怪的結果。


        mysql> SELECT * FROM articles WHERE MATCH (title,body) AGAINST ('MySQL');

        Empty set (0.00 sec)


        在上面的例子中,搜索詞 MySQL 卻沒有得到任何結果,因為這個詞在超過一半的記錄行中出現。同樣的,它被有效地處理為一個 stopword (即,一個零語義值的詞)。這是最理想的行為 -- 一個自然語言的查詢不應該從一個 1GB 的表中返回每個次行(second row)。


        匹配表中一半記錄行的詞很少可能找到相關文檔。實際上,它可能會發現許多不相關的文檔。我們都知道,當我們在互聯網上通過搜索引擎試圖搜索某些東西時,這會經常發生。因為這個原因,在這個特殊的數據集中,這樣的行被設置一個低的語義值。


        到 4.0.1 時,MySQL 也可以使用 IN BOOLEAN MODE 修飾語來執行一個邏輯全文搜索。


        mysql> SELECT * FROM articles WHERE MATCH (title,body)

        -> AGAINST ('+MySQL -YourSQL' IN BOOLEAN MODE);

        +----+------------------------------+-------------------------------------+

        | id | title | body |

        +----+------------------------------+-------------------------------------+

        | 1 | MySQL Tutorial | DBMS stands for DataBase ... |

        | 2 | How To Use MySQL Efficiently | After you went through a ... |

        | 3 | Optimising MySQL | In this tutorial we will show ... |

        | 4 | 1001 MySQL Tricks | 1. Never run mysqld as root. 2. ... |

        | 6 | MySQL Security | When configured properly, MySQL ... |

        +----+------------------------------+-------------------------------------+

        12 下一頁

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        適宜做簡單搜索的MySQL數據庫全文索引_MySQL

        適宜做簡單搜索的MySQL數據庫全文索引_MySQL:全文索引在 MySQL 中是一個 FULLTEXT 類型索引。FULLTEXT 索引用于 MyISAM 表,可以在 CREATE TABLE 時或之后使用 ALTER TABLE 或 CREATE INDEX 在 CHAR、VARCHAR 或 TEXT 列上創建。對于大的數據庫,將數據裝載到一個沒有 FULLTEXT 索引的表
        推薦度:
        標簽: 搜索 軟件 資訊
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 永久黄网站色视频免费观看| GOGOGO免费观看国语| 69av免费视频| 久久精品国产精品亚洲色婷婷| 精品久久久久久国产免费了| 亚洲人成人网站在线观看| 色吊丝免费观看网站| 四虎影视免费永久在线观看 | 香港a毛片免费观看| 久久青青成人亚洲精品| 老司机69精品成免费视频| 国产亚洲精品岁国产微拍精品| www一区二区www免费| 亚洲精品亚洲人成人网| 免费在线黄色电影| 亚洲视频在线免费观看| 亚洲一区二区三区免费观看| 亚洲黄色片免费看| 成人免费毛片内射美女-百度| 中文字幕亚洲精品无码| 四虎国产精品免费久久影院| 夜夜爽妓女8888视频免费观看| 国产自偷亚洲精品页65页| 最新国产乱人伦偷精品免费网站| 亚洲天堂中文字幕| AV片在线观看免费| 白白色免费在线视频| 国产亚洲色婷婷久久99精品| 2021精品国产品免费观看 | 亚洲视频在线视频| 夜夜嘿视频免费看| 精品国产污污免费网站入口在线| 亚洲精品免费视频| 麻豆国产精品入口免费观看| 一级毛片成人免费看a| 亚洲一区二区三区首页| 四虎成人免费影院网址| aa级毛片毛片免费观看久| 亚洲成a人不卡在线观看| 又粗又大又猛又爽免费视频| 97无码人妻福利免费公开在线视频 |