You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Solr-6.5.1报错:无法对无docValues的PointField排序,求修复方案

Solr-6.5.1排序报错:can not sort on a PointField without doc values: metadata_modified

完整报错堆栈

org.apache.solr.common.SolrException: can not sort on a PointField without doc values: metadata_modified
    at org.apache.solr.schema.SchemaField.checkSortability(SchemaField.java:174)
    at org.apache.solr.schema.DatePointField.getSortField(DatePointField.java:133)
    at org.apache.solr.schema.SchemaField.getSortField(SchemaField.java:150)
    at org.apache.solr.search.SortSpecParsing.parseSortSpecImpl(SortSpecParsing.java:202)
    at org.apache.solr.search.SortSpecParsing.parseSortSpec(SortSpecParsing.java:60)
    at org.apache.solr.search.QParser.getSortSpec(QParser.java:285)
    at org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:187)
    at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:269)
    at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:173)
    at org.apache.solr.core.SolrCore.execute(SolrCore.java:2440)
    at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:723)
    at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:529)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:347)
    at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:298)
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1691)
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:582)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226)
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:119)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
    at org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)
    at org.eclipse.jetty.server.Server.handle(Server.java:534)
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320)
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)
    at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273)
    at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95)
    at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)
    at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)
    at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)
    at java.lang.Thread.run(Thread.java:750)

问题背景

字段metadata_modified原配置:

<field name="metadata_modified" type="date" indexed="true" stored="true" multiValued="false"/>

已添加docValues="true"但问题未解决。

修复步骤

  • 确认字段配置正确性:确保字段配置明确开启docValues,修改后的配置应为:
    <field name="metadata_modified" type="date" indexed="true" stored="true" multiValued="false" docValues="true"/>
    
  • 重启Solr核心或服务:修改schema.xml后,通过Solr Admin的Core Admin页面重新加载核心,或直接重启Solr服务,让配置生效。
  • 重新全量索引数据:docValues是在索引阶段生成的,已存在的旧索引不会自动生成该值,必须重新导入或索引所有文档。
  • 验证配置与索引:在Solr Admin的Schema页面查看metadata_modified字段的docValues属性是否为true,再执行排序查询测试。

额外排查点

  • 检查是否存在动态字段规则或字段别名,导致实际生效的配置并非你修改的字段。
  • 确认Solr核心加载的是你修改的schema.xml文件,避免误改了其他核心的配置文件。

内容的提问来源于stack exchange,提问作者Namwanza Ronald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 10:50:37