Elasticsearch使用jcseg分词插件遇到的高亮highlight问题

Elasticsearch使用jcseg分词插件遇到的高亮highlight问题

  • 问题描述
  • 解决办法

问题描述

在使用jcseg分词插件,并且需要高亮关键词的时候遇到es查询报错:
invalid token offsets exception : Token 11月 15日 exceeds length of provided text sized 14
Elasticsearch使用jcseg分词插件遇到的高亮highlight问题_第1张图片

问题是这样的:现在发现分词会将“11月15日”变成“11月 15日”,在中间加了一个空格。这样一来,在高亮的时候,使用position标记的时候就会偏移。比如在“我11月15日去看电影”中搜索的关键字“11月15日”,高亮后的结果是“11月15日去”。当“11月15日”在句子末尾的时候,就会直接报错。

解决办法

索引分词模式,由jcseg_nlp,改成jcseg_complex,然后重新建索引

除此之外,还遇到 原文“三万”,分词后变成“30000”的问题,不过经过查看jcseg的配置文件,发现是它的一个功能:将中文数字转成阿拉伯数字。
在配置文件中将这个功能关闭,然后重启ES,重建索引,就解决了这个问题。

你可能感兴趣的:(Java,Lucene,Keng)