Text类型分词 |
您所在的位置:网站首页 › 单字所有 › Text类型分词 |
背景信息 对于Text类型字段,常用于匹配查询(MatchQuery)和短语匹配查询(MatchPhraseQuery),少部分场景也会用到精确查询(TermQuery)、多词精确查询(TermsQuery)、前缀查询(PrefixQuery)、通配符查询(WildcardQuery)等。 分词类型目前支持单字分词、分隔符分词、最小数量语义分词、最大数量语义分词和模糊分词5种分词类型。 所有分词类型都可以应用于模糊查询场景,具体如何选择请参见详解TableStore模糊查询。 单字分词(SingleWord)单字分词适用于汉语、英语、日语等所有语言文字。Text类型字段的默认分词类型为单字分词。 设置分词类型为单字分词后,具体的分词方式如下: 汉语会按照“字”切分。例如“杭州”会切分成“杭”和“州”,通过MatchQuery或MatchPhraseQuery查询“杭”可以查询到含有“杭州”内容的数据。 英文字母或数字会按照空格或标点符号切分,然后转换为小写。例如“Hang Zhou”会切分成“hang”和“zhou”,通过MatchQuery或MatchPhraseQuery查询“hang”或“HANG”或“Hang”都能查询到该行数据。 对于数字和英文字母连接在一起的词,例如商品型号等,也会按照空格或标点符号切分,但是数字和英文不会拆分开。例如“IPhone6”会拆分成“IPhone6”,通过MatchQuery或MatchPhraseQuery查询时,只能指定完整“iphone6”才能查询到,使用“iphone”查询不到。 单字分词的参数说明请参见下表。 参数 说明 caseSensitive 是否大小写敏感。默认是false,此时所有英文字母会转换为小写。 如果不需要系统自动将英文字母转换为小写字母,需要保持大小写敏感,可以设置caseSensitive为true。 delimitWord 对于英文和数字连接在一起的单词,是否分割英文和数字。默认是false。 如果需要将数字和英文拆分开,可以设置delimitWord参数为true,此时“iphone6”会被拆分成“iphone”和“6”。 分隔符分词(Split)表格存储提供了基于通用词典的分词,但是有些特殊行业需要一些自定义的辞典做分词,为了解决此问题,表格存储提供了分隔符分词,也叫做自定义分词,用户先按照自己的方式分词,再按照特定的分隔符进行分隔后写入表格存储。 分隔符分词适用于汉语、英语、日语等所有语言文字。 为Text类型字段配置了分隔符分词后,表格存储会将Text类型字段分词后的内容全部转换为小写字母进行存储。当要查询匹配该字段的数据时,如果使用的是分词字段类型(Text)专用的MatchQuery和MatchPhraseQuery功能,则表格存储会自动将查询词转换为小写字母进行匹配,查询词不需要区分大小写;但是如果使用的是TermQuery等非分词字段专用的查询功能,则查询词会区分大小写,您需要手动将查询词转换为小写字母后才能查询到符合条件的数据。 设置分词类型为分隔符分词后,会按照分隔符delimiter指定值切分字段值。例如字段值为“羽毛球,乒乓球,说唱”,分隔符delimeter为英文逗号(,),则会切分为“羽毛球”、“乒乓球”和“说唱”并建立索引,通过MatchQuery或MatchPhraseQuery查询“羽毛球”、“乒乓球”、“说唱”或“羽毛球,乒乓球”均可以查询到该行数据。 分隔符分词的参数说明请参见下表。 参数 说明 delimiter 分隔符,默认是空白字符,可以自定义分隔符。 创建多元索引时,字段分词配置中的分隔符必须和写入数据时的分隔符保持一致,否则可能会查询不到数据。 当自定义的分隔符为特殊字符井号(#)、波浪线(~)等时,字段分词配置中的分隔符请使用转义字符\表示,例如\#。 最小数量语义分词(MinWord)最小数量语义分词适用于汉语,一般应用于全文检索场景。 设置分词类型为最小数量语义分词后,系统按照语义对Text字段内容分词时,会将Text字段内容切分成最小数量的语义词。例如“梨花茶”会切分成“梨”和“花茶”,切分后的结果没有重合。再例如“中华人民共和国”会被切分成“中华人民共和国”。 最大数量语义分词(MaxWord)最大数量语义分词适用于汉语,一般应用于全文检索场景。 设置分词类型为最大数量语义分词后,系统会尽量多的分出语义词,不同语义词之间会有重叠,总长度累加后会大于原文长度,索引大小也会膨胀。例如“梨花茶”会切分成“梨花”和“花茶”,切分后的结果没有重合。再例如“中华人民共和国”会被切分成“中华人民共和国”、“中华人民”、“中华”、“华人”、“人民共和国”、“人民”、“共和国”、“共和”和“国”。 此种分词类型的分词后结果更多,查询时命中的概率更大,但是索引大小会有比较大的膨胀。适合使用MatchQuery而非MatchPhraseQuery查询,如果使用MatchPhraseQuery查询,由于查询关键词中也会按照同样的方式分词,那么位置信息会重叠,就有可能导致搜索不到。 模糊分词(Fuzzy)模糊分词适用于汉语、英语、日语等所有语言文字,一般应用于文本内容较短场景,例如标题、电影名称、书名、文件名、目录名等。 模糊分词可用于以很低的延迟返回结果,比WildcardQuery性能更好,但是索引大小会有一定膨胀。 设置分词类型为模糊分词后,系统对文本内容进行Ngram分词,结果介于minChars和maxChars之间。例如用在下拉提示等功能中。 为Text类型字段配置了模糊分词后,表格存储会将Text类型字段分词后的内容全部转换为小写字母进行存储。当使用MatchPhraseQuery功能查询匹配该字段的数据时,表格存储会自动将查询词转换为小写字母进行匹配,查询词不需要区分大小写,类似于SQL中的LIKE。 重要要实现模糊查询时,您必须在进行模糊分词的列上使用MatchPhraseQuery,而不能使用其他Query。如果对该列有多种查询需求,请使用虚拟列功能。关于虚拟列的具体操作,请参见虚拟列。 限制 当Text字段的分词类型为模糊分词时,长度不能超过1024字符。如果超过长度限制,系统会将超过的字符截断丢弃,只保留前1024个字符。 为了防止索引数据量过度膨胀,最大和最小字符切分单元的差值(maxChars-minChars)不能超过6。 参数 参数 说明 minChars 最小字符切分单元,即切分的字符组合中字符数量必须大于等于此值,默认值为1。 maxChars 最大字符切分单元,即切分的字符组合中字符数量必须小于等于此值,默认值为7。 分词类型对比从几个关键维度对不同分词的比较信息请参见下表。 对比项 单字分词 分隔符分词 最小数量语义分词 最大数量语义分词 模糊分词 索引膨胀 小 小 小 中 大 相关性影响 弱 弱 中 较强 较强 适用语言 所有 所有 汉语 汉语 所有 长度限制 无 无 无 无 1024字符 召回率 高 低 低 中 高 示例通过如下示例查看各种分词器在索引时和查询时的分词效果。 索引时,分词字符串的值会被切分并建立索引;查询时,查询关键词也被切分,并尝试匹配之前建立的索引。 字段值为“中华人民共和国-国歌”,使用各类型分词器后索引的切词效果。 类型 参数 索引时分词 单字分词(SingleWord) 默认 “中”,“华”,“人”,“民”,“共”,“和”,“国”,“歌” 分隔符分词(Split) delimiter: "-" “中华人民共和国”,“国歌” 最小数量语义分词(MinWord) 默认 “中华人民共和国”,“国歌” 最大数据量语义分词(MaxWord) 默认 “中华人民共和国”,“中华人民”,“中华”,“华人”,“人民共和国”,“人民”,“共和国”,“共和”,“国”,“国歌” 模糊分词(Fuzzy) minChars:1, maxChars:3 “中”,“中华”,“中华人”,“华”,“华人”,“华人民”,“人”,“人民”,“人民共”,“民”,“民共”,“民共和”,“共”,“共和”,“共和国”,“和”,“和国”,“国”,“国歌”,“歌” 字段值为“中华人民共和国-国歌”,使用各类型分词器后查询的切词效果。 类型 参数 查询时分词 单字分词(SingleWord) 默认 “中”,“华”,“人”,“民”,“共”,“和”,“国”,“歌” 分隔符分词(Split) delimiter: "-" “中华人民共和国”,“国歌” 最小数量语义分词(MinWord) 默认 “中华人民共和国”,“国歌” 最大数据量语义分词(MaxWord) 默认 “中华人民共和国”,“中华人民”,“中华”,“华人”,“人民共和国”,“人民”,“共和国”,“共和”,“国”,“国歌” 模糊分词(Fuzzy) 默认(minChars:1, maxChars:7) “中华人民共和国”,“国歌” |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |