全文索引,创建全文索引?( 三 )


作为只读变量,ngram_token_size只能在启动配置或者配置文件中指定
与默认的解析器相差不大,多了一句:xxx WITH PARSER ngram
Ngram在解析时去除空格,如
MySQL内建的默认全文检索解析器将单词与Stopword列表中的做对比,如果单词与Stopword列表中的元素相同的话,这个单词则不会被索引 。对于Ngram解析器,Stopword的处理方式不同 。Ngram解析器不排除与stopword列表中的条目相等的token,而是排除包含stopwords的token 。例如,假设 ngram_token_size=2,包含“a,b”的文档将被解析为 “a,” h和“,b” 。如果将逗号(“,”)定义为停止字,则 “a,”和“,b”都将不会加入索引中,因为它们包含逗号 。
例子:
默认Ngram解析器使用默认的Stopword列表,这里面含有英文的Stopword 。如果需要中文的Stopword,需要你自己创建 。
Stopword的长度超过 ngram_token_size则会被忽略 。
有两个文档,一个包含“ab”,另一个包含“abc” 。对于搜索文本“abc”将转换成“ab”,“bc” 。
略 。
For example, The search phrase “abc” is converted to “ab bc”, which returns documents containing “abc” and “ab bc”.
The search phrase “abc def” is converted to “ab bc de ef”, which returns documents containing “abc def” and “ab bc de ef”. A document that contains “abcdef” is not returned.
使用Ngram解析器好处是支持了中文的检索
【全文索引,创建全文索引?】本文到此结束,希望对大家有所帮助 。

推荐阅读