【问题标题】:elasticsearch highlighting error, failed to highlight ... String index out of rangeelasticsearch高亮错误,未能高亮...字符串索引超出范围
【发布时间】:2013-04-01 19:34:31
【问题描述】:

我无法确定这个错误的头或尾,而且它非常随机地发生在我什至不知道从哪里开始寻找的地方。

这是完整错误的样子

轮胎::搜索::SearchRequestFailed: 500 :

{
  "error": "SearchPhaseExecutionException[Failed to execute phase [query_fetch], total failure; 
            shardFailures {[7McitJnjQkqLkViqUpZUyw][content][4]: 
              FetchPhaseExecutionException[[content][4]: 
                query[+_all:account +_all:set +_all:up],from[0],size[20]: 
                Fetch Failed [Failed to highlight field [post_content]]]; 
                nested: StringIndexOutOfBoundsException[String index out of range: -5]; }]",
  "status": 500
}

类似的查询 “关系学习”

会运行良好,但正在运行 “以关系为中心的学习”

会抛出错误,实际上任何与“关系学习”一起使用的字母 c、d、j、q、x、z .. 像“d 关系学习”都会抛出错误。

真是让人抓狂。

我正在使用 Tire 运行 elasticsearch 19.2 我只想知道从哪里开始寻找,任何想法都会有所帮助。

This is a more complete explanation我遇到的问题,完全一样

【问题讨论】:

  • 它看起来像快速矢量荧光笔中的一个错误。如果你可以升级到 0.20,你可以尝试通过在荧光笔请求中添加"type":"highlighter" 属性来切换到标准荧光笔,看看它是否能解决问题。
  • 感谢 imotov!您是否知道 ES 中的修复可能在 0.20.x 中修复了这个问题,或者它是在 ES 版本升级中修复的 lucene 问题?
  • 我不知道。我的建议不是修复,而是解决方法。您可以通过在没有 term_vectors 的情况下重新索引记录来获得相同的结果。顺便说一句,你能发布这个错误的完整堆栈跟踪吗?
  • 您可以通过在没有 term_vectors 的情况下重新索引您的记录来获得相同的结果 -----> 这导致了另一个我刚刚设法修复的错误。 stackoverflow.com/questions/13750330/…

标签: elasticsearch tire


【解决方案1】:

正如@imotov 上面所说,这是 lucene 和 elasticsearch 中的一个错误,https://issues.apache.org/jira/browse/LUCENE-4899

您可以通过不使用快速矢量荧光笔来解决它,或者通过将 fragment_size 设置为更高的数字来减少出现错误的发生率。

我怀疑它们会完全消失,除非你将 fragment_size 设置为一个不可能的高数字,你可以这样做(理论上,但你必须自己处理截断,这违背了首先是荧光笔)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-25
    • 2015-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    相关资源
    最近更新 更多