Elasticsearch使用jcseg分词插件遇到的高亮highlight问题
Elasticsearch使用jcseg分词插件遇到的高亮highlight问题
- 问题描述
- 解决办法
问题描述
在使用jcseg分词插件,并且需要高亮关键词的时候遇到es查询报错:
invalid token offsets exception : Token 11月 15日 exceeds length of provided text sized 14
问题是这样的:现在发现分词会将“11月15日”变成“11月 15日”,在中间加了一个空格。这样一来,在高亮的时候,使用position标记的时候就会偏移。比如在“我11月15日去看电影”中搜索的关键字“11月15日”,高亮后的结果是“11月15日去”。当“11月15日”在句子末尾的时候,就会直接报错。
解决办法
索引分词模式,由jcseg_nlp,改成jcseg_complex,然后重新建索引
除此之外,还遇到 原文“三万”,分词后变成“30000”的问题,不过经过查看jcseg的配置文件,发现是它的一个功能:将中文数字转成阿拉伯数字。
在配置文件中将这个功能关闭,然后重启ES,重建索引,就解决了这个问题。
还没有评论,来说两句吧...