阅读ngram文档

This commit is contained in:
asahi
2025-02-24 19:09:16 +08:00
parent 838ec5ccc8
commit 4f13a6c959

View File

@@ -83,6 +83,7 @@
- [ngram parser wildcard Search](#ngram--parser-wildcard-search) - [ngram parser wildcard Search](#ngram--parser-wildcard-search)
- [前缀小于ngram token size](#前缀小于ngram-token-size) - [前缀小于ngram token size](#前缀小于ngram-token-size)
- [前缀大于ngram token size](#前缀大于ngram-token-size) - [前缀大于ngram token size](#前缀大于ngram-token-size)
- [示例](#示例)
# innodb索引与算法 # innodb索引与算法
@@ -982,7 +983,7 @@ select * from information_schema.INNODB_FT_INDEX_CACHE limit 20;
### ngram handle stop word ### ngram handle stop word
#### natural language mode #### 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`将会匹配两个文档。 如果存在两个文档,一个文档包含`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 token size,那么前缀将会转化为ngram phase并且wildcard将会被忽略。例如`ngram_token_size`为2查询`abc*`将会转换为`ab bc` 如果前缀大于ngram token size,那么前缀将会转化为ngram phase并且wildcard将会被忽略。例如`ngram_token_size`为2查询`abc*`将会转换为`ab bc`
#### 示例
对于`泽连斯基最新表态`字符串,其实际被分割为`泽连斯基,连斯基最,斯基最新,基最新表,最新表态`这些word故而对于boolean mode下的phrase场景其匹配如下
- `"泽连斯基 连斯基最"`:能够匹配字符串
- `"泽连斯基 最新表态"`:无法匹配字符串