mysql全文搜尋功能

2021-10-20 07:19:52 字數 1107 閱讀 5401

一、語法:

match (col1,col2,...) against (expr [search_modifier])

search_modifier:

二、mysql支援全文索引和搜尋

1、全文索引在mysql裡面索引型別是:fulltext

2、全文索引只能用在innodb或者 myisam儲存引起的表中,並且只能在char, varchar, text型別的字段上建立

3、mysql內建的全文ngram解析器支援中文、日文和韓語,還提供乙個可安裝的日語的mecab全文解析器外掛程式。

4、全文索引可以在create table執行的時候隨錶一起建立,也可以通過alter table 或 create index命令隨後新增

5、對於大資料量的載入,先把資料載入到表裡面然後再建立全文索引要比建立全文索引之後再載入資料到表裡面快很多

三、全文搜尋採用match()...against語法來執行。match()使用逗號分隔的列表來表示那些需要被搜尋的列。against傳入的是搜尋的字元,和可選擇的修飾符來指示使用哪種搜尋型別。搜尋的字串在查詢過程中必須是字串常量值,這就排除了類似於表列的值,因為每一行的列值會存在不同。

四、三種型別的全文索引

1、自然語言搜尋

將搜尋字串解釋為自然人類語言中的短語(自由文字中的短語)。除了雙引號(「)字元外,沒有特殊運算子。如果指定了in natural language mode修飾符或未指定修飾符,則全文搜尋使用自然語言搜尋。

2、布林搜尋

使用特殊查詢語言的規則解釋搜尋字串。字串包含要搜尋的單詞。它還可以包含一些操作符,這些操作符指定了一些要求,比如乙個單詞必須出現在匹配的行中,或者在匹配的行中不出現,或者它的權重應該比通常的高或低。某些常用詞(stopwords)將從搜尋索引中省略,如果出現在搜尋字串中,則不匹配。使用in boolean mode修飾符指定布林搜尋。

3、查詢擴充套件搜尋

對自然語言搜尋的修改。搜尋字串用於執行自然語言搜尋。然後將搜尋返回的最相關行中的單詞新增到搜尋字串中,然後再次執行搜尋。查詢返回第二次搜尋的行。使用in natural language mode with query expansion或者 with query expansion修飾符指定查詢擴充套件搜尋

Django全文搜尋功能

1.使用全文搜尋框架django haystack 2.使用搜尋引擎whoosh 3.安裝 pip install django haystack pip install whoosh 4.配置 settings.py中 全文檢索框架配置 haystack connections 當新增,修改,刪除...

mysql中文全文搜尋

centos6 xampp1.7.7 mysql5.5 opt lampp bin mysql uroot ppassword mysql show variables like plugin dir 外掛程式路徑 opt lampp lib mysql plugin wget tar zxvf m...

Mysql全文搜尋match against的用法

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