📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

简而言之,当 Elasticsearch 中的 ‘max_shingle_size’ 参数设置超出允许范围时,会出现此错误。‘max_shingle_size’ 参数用于 shingle token filter 中,用于控制最大的 shingle 大小。要解决此问题,你应该将 ‘max_shingle_size’ 参数调整到允许范围内的值。这个范围由常量 ‘MAX_SHINGLE_SIZE_LOWER_BOUND’ 和 ‘MAX_SHINGLE_SIZE_UPPER_BOUND’ 定义。如果你不确定合适的值,可以考虑使用默认值或查阅 Elasticsearch 文档以获取指导。

日志上下文 #


日志 “[max_shingle_size] must be at least [” + MAX_SHINGLE_SIZE_LOWER_BOUND + “] and at most ” 类名是 SearchAsYouTypeFieldMapper.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考:

this.similarity = similarity;
 }  public Builder maxShingleSize(int maxShingleSize) {
 if (maxShingleSize < MAX_SHINGLE_SIZE_LOWER_BOUND || maxShingleSize > MAX_SHINGLE_SIZE_UPPER_BOUND) {
 throw new MapperParsingException("[max_shingle_size] must be at least [" + MAX_SHINGLE_SIZE_LOWER_BOUND + "] and at most " +
 "[" + MAX_SHINGLE_SIZE_UPPER_BOUND + "]; got [" + maxShingleSize + "]");
 }
 this.maxShingleSize = maxShingleSize;
 return builder;
 }