From 4f13a6c95963366d3082599e0e4276838f7588c7 Mon Sep 17 00:00:00 2001 From: asahi Date: Mon, 24 Feb 2025 19:09:16 +0800 Subject: [PATCH] =?UTF-8?q?=E9=98=85=E8=AF=BBngram=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- mysql/mysql文档/mysql_索引.md | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mysql/mysql文档/mysql_索引.md b/mysql/mysql文档/mysql_索引.md index 9ece469..8fa309c 100644 --- a/mysql/mysql文档/mysql_索引.md +++ b/mysql/mysql文档/mysql_索引.md @@ -83,6 +83,7 @@ - [ngram parser wildcard Search](#ngram--parser-wildcard-search) - [前缀小于ngram token size](#前缀小于ngram-token-size) - [前缀大于ngram token size](#前缀大于ngram-token-size) + - [示例](#示例) # innodb索引与算法 @@ -982,7 +983,7 @@ select * from information_schema.INNODB_FT_INDEX_CACHE limit 20; ### ngram handle stop word #### natural language mode -对于natural language mode,`被搜索的词`将会被转化为ngram的并集,例如`abc`(假设ngram token size为2)将会被转化为`ab bc`。 +对于natural language mode,`被搜索的词`将会被转化为ngram的并集(包含任意一个即可),例如`abc`(假设ngram token size为2)将会被转化为`ab bc`。 如果存在两个文档,一个文档包含`ab`,另一个文档包含`abc`,搜索词`ab bc`将会匹配两个文档。 @@ -996,5 +997,8 @@ select * from information_schema.INNODB_FT_INDEX_CACHE limit 20; #### 前缀大于ngram token size 如果前缀大于ngram token size,那么前缀将会转化为ngram phase,并且wildcard将会被忽略。例如,当`ngram_token_size`为2,查询`abc*`将会转换为`ab bc` - +#### 示例 +对于`泽连斯基最新表态`字符串,其实际被分割为`泽连斯基,连斯基最,斯基最新,基最新表,最新表态`这些word,故而对于boolean mode下的phrase场景,其匹配如下: +- `"泽连斯基 连斯基最"`:能够匹配字符串 +- `"泽连斯基 最新表态"`:无法匹配字符串