RDSforMySQL全文檢索相關問題的處理
RDS for MySQL 全文檢索相關問題的處理
RDS MySQL 全文檢索相關問題
5. ft_query_expansion_limit 引數作用
1. RDS for MySQL 對全文檢索的支援
RDS MySQL 5.5 僅 MyISAM 引擎表支援全文索引,RDS MySQL 5.6 版本 MyISAM 和 InnoDB 引擎都支援全文索引。
2. RDS for MySQL 全文檢索相關引數
可以在控制檯 引數設定來設定下列引數。
# | 引數名稱 | 預設值 | 最小值 | 最大值 | 作用 |
1 | ft_min_word_len | 4 | 1 | 3600 | MyISAM 引擎表全文索引包含的最小詞長度 |
2 | ft_query_expansion_limit | 20 | 0 | 1000 | MyISAM引擎表使用 with query expansion 進行全文搜尋的最大匹配數 |
3 | innodb_ft_min_token_size | 3 | 0 | 16 | InnoDB 引擎表全文索引包含的最小詞長度 |
4 | innodb_ft_max_token_size | 84 | 10 | 84 | InnoDB 引擎表全文索引包含的最大詞長度 |
show global variables like `ft_%`; --檢視 MyISAM 引擎表全文檢索相關引數
show global variables like `innodb_ft%`; --檢視 InnoDB 引擎表全文檢索相關引數
3. RDS MySQL 全文檢索中文支援
MyISAM 引擎表和 InnoDB 引擎表(需 RDS MySQL 5.6 版本)都支援中文全文檢索。
3.1 MyISAM 引擎表
MyISAM 引擎表需要將 ft_min_word_len 設定為小於等於需要檢索的最小分詞長度,設定完畢後建議重新建立表上已有的全文索引;對於中文檢索,建議將 ft_min_word_len 設定為 1。
CREATE TABLE `my_ft_test_02` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `idx_ft_name` (`name`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
--重建全文索引步驟:
alter table my_ft_test_02 drop key idx_ft_name; --刪除已有的全文索引
alter table my_ft_test_02 add fulltext key idx_ft_name (name); --重新新增全文索引
3.2 InnoDB 引擎表
InnoDB 引擎表需要將 innodb_ft_min_token_size 設定為小於等於需要檢索的最小分詞長度,設定完畢後建議重新建立表上已有的全文索引;對於中文檢索,建議將 ft_min_word_len 設定為 1。
CREATE TABLE `my_ft_test_01` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` text,
PRIMARY KEY (`id`),
FULLTEXT KEY `idx_ft_name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8;
--重建全文索引的步驟:
alter table my_ft_test_01 drop key idx_ft_name; --刪除已有的全文索引
alter table my_ft_test_01 add fulltext key idx_ft_name (name); --重新建立全文索引
4. like `%xxx%` 和全文檢索的比較
4.1 like `%xxx%`
對於資料量比較小,查詢條件無法分詞的情況下,可以考慮使用 like `%xxx%` 來進行查詢。但是由於 like `%xxx%` 這樣的條件無法使用欄位上的索引,因此通常執行時間較長,會耗費比較多的資源;建議結合查詢其他條件來使用,這樣可以儘量使用其他欄位的索引來加速查詢。
4.2 全文檢索
全文檢索本身是按 詞 進行匹配,因此返回的結果會和 like `%xxx%` 的方式有所區別。
5. ft_query_expansion_limit 引數作用
MySQL 全文檢索支援擴充套件檢索,具體請參考 帶查詢擴充套件的全文檢索
引數 ft_query_expansion_limit 的作用是指定MyISAM引擎表使用with query expansion進行全文搜尋的最大匹配數,下面以一個例子來說明其作用。
引數 ft_query_expansion_limit 當前設定為 20:
當前表中相關的記錄情況:
使用查詢擴充套件的結果:
相關文章
- 配置全文檢索
- 全文檢索的轉義
- 全文檢索庫 bluge
- Kibana 全文檢索操作
- 基於ElasticSearch實現商品的全文檢索檢索Elasticsearch
- IM全文檢索技術專題(四):微信iOS端的最新全文檢索技術優化實踐iOS優化
- solr全文檢索學習Solr
- Oracle的全文檢索技術(轉)Oracle
- 全文檢索技術lucene的demo
- openGauss每日一練(全文檢索)
- Linux下處理時間同步相關問題彙總Linux
- Mysql 如何實現全文檢索,關鍵詞跑分MySql
- oracle全文索引之配置全文檢索環境Oracle索引
- springboot ElasticSearch 簡單的全文檢索高亮Spring BootElasticsearch
- 基於Lucene的全文檢索實踐
- php + MongoDB + Sphinx 實現全文檢索PHPMongoDB
- PostgreSQL全文檢索-詞頻統計SQL
- 【IT老齊072】全文檢索執行原理
- ElasticSearch 實現分詞全文檢索 - 概述Elasticsearch分詞
- 微信團隊分享:微信移動端的全文檢索多音字問題解決方案
- opencv 視訊處理相關OpenCV
- 沒辦法了,用 MySQL 做全文檢索也挺好的MySql
- ElasticSearch 實現分詞全文檢索 - delete-by-queryElasticsearch分詞delete
- octomap相關問題
- django相關問題Django
- electron相關問題
- Docker 相關問題Docker
- 關於盒模型相關的問題模型
- 解決csdn關注瀏覽全文問題
- webpack基礎–css相關處理WebCSS
- PAIRDISTILL: 用於密集檢索的成對相關性蒸餾方法AI
- 個人部落格分享(Laravel + Vue 元件,支援全文檢索)LaravelVue元件
- java語言相關的問題Java
- 字串處理 Rabin-Karp (Rolling Hash)及相關LeetCode題目字串LeetCode
- SpringBoot-相關問題Spring Boot
- Java相關問題整理Java
- 大模型相關問題大模型
- python pip相關問題Python
- 數字影像處理相關練習