如何用Intl.Segmenter实现中文网页全文搜索长尾词高亮?
- 内容介绍
- 相关推荐
本文共计1228个文字,预计阅读时间需要5分钟。
Intl.Segmenter 不能直接实现语义分词的全文搜索高亮,它只负责按 Unicode 规则切出语言感知的边界(如中文的词或句子)。它不识别南京市或长江大桥这类实体。若要实现高亮,需先使用它进行分词,再结合字符串匹配或正则定位。否则,直接在南京市长江大桥中高亮南京、市、长江、大桥将导致完全错误。
为什么不能直接用 granularity: "word" 做中文搜索分词
Intl.Segmenter 在 zh-CN 下的 "word" 模式,本质是调用 ICU 的「CJK Word Boundary」规则,它按字、标点、常见双字组合(如“我们”“可以”)切分,但不查词典、不消歧、不支持未登录词。
本文共计1228个文字,预计阅读时间需要5分钟。
Intl.Segmenter 不能直接实现语义分词的全文搜索高亮,它只负责按 Unicode 规则切出语言感知的边界(如中文的词或句子)。它不识别南京市或长江大桥这类实体。若要实现高亮,需先使用它进行分词,再结合字符串匹配或正则定位。否则,直接在南京市长江大桥中高亮南京、市、长江、大桥将导致完全错误。
为什么不能直接用 granularity: "word" 做中文搜索分词
Intl.Segmenter 在 zh-CN 下的 "word" 模式,本质是调用 ICU 的「CJK Word Boundary」规则,它按字、标点、常见双字组合(如“我们”“可以”)切分,但不查词典、不消歧、不支持未登录词。

