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

版本: 6.8-8.9

简而言之,当 Elasticsearch 中的 function score 查询为文档返回了无效分数时,就会发生此错误。这可能是由于 function score 查询使用不当或评分函数中的 bug 导致的。要解决此问题,您可以尝试以下操作:1) 检查 function score 查询以确保其格式正确。2) 检查评分函数以确保其正确实现并返回有效分数。3) 将 Elasticsearch 更新到最新版本,因为这可能是已在较新版本中修复的 bug。

日志上下文 #

日志 “function score query returned an invalid score: " + finalScore + " for doc: " 类名是 FunctionScoreQuery.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

if (finalScore < 0f || Float.isNaN(finalScore)) {
 /*
 These scores are invalid for score based {@link org.apache.lucene.search.TopDocsCollector}s.
 See {@link org.apache.lucene.search.TopScoreDocCollector} for details.
 */
 throw new ElasticsearchException("function score query returned an invalid score: " + finalScore + " for doc: " + docId);
 }
 return finalScore;
 }  protected double computeScore(int docId; float subQueryScore) throws IOException {