Solr 对多值字段进行排序会在多分片环境中产生 Bytesref 错误

问题描述 投票:0回答:1

Solr 8.11(在 SolrCloud 模式下)在使用排序参数查询时返回 500 错误

sort=field("RECORD_DATE") asc

错误信息是:

类 java.lang.String 无法转换为类 org.apache.lucene.util.BytesRef (java.lang.String 位于加载程序“bootstrap”的 java.base 模块中;org.apache.lucene.util.BytesRef 位于加载器的未命名模块 org.eclipse.jetty.webapp.WebAppClassLoader @7f69d591)

RECORD_DATE
是一个多值字段。使用
score
等“简单”字段进行排序时,我没有遇到任何问题。

奇怪的是,该错误只发生在多分片环境中。在单分片环境下,没有错误!

solr solrcloud solr8
1个回答
0
投票

我无法可靠地进行

RECORD_DATE
排序工作。显然,即使使用单个分片 Solr,它也不能可靠地工作! 因此,我将排序字段从
RECORD_DATE
切换为
_version_

使用

_version_
的好处:

  1. 单值字段
  2. 永远存在
  3. 根据需要排序 - Solr 文档创建时间
© www.soinside.com 2019 - 2024. All rights reserved.