1

Solr 运行良好,直到我运行它时突然抛出异常

例外是:

WARNING: REPLAY_ERR: Exception replaying log

java.lang.UnsupportedOperationException
    at org.apache.lucene.queries.function.FunctionValues.longVal(FunctionValues.java:46)
    at org.apache.solr.update.VersionInfo.getVersionFromIndex(VersionInfo.java:201)
    at org.apache.solr.update.UpdateLog.lookupVersion(UpdateLog.java:711)
    at org.apache.solr.update.VersionInfo.lookupVersion(VersionInfo.java:184)
    at org.apache.solr.update.processor.DistributedUpdateProcessor.versionAdd(DistributedUpdateProcessor.java:571)
    at org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:350)
    at org.apache.solr.update.UpdateLog$LogReplayer.doReplay(UpdateLog.java:1268)
    at org.apache.solr.update.UpdateLog$LogReplayer.run(UpdateLog.java:1159)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
    at java.util.concurrent.FutureTask.run(FutureTask.java:166)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:722)

在挖掘这个问题后,我发现该类FunctionValues没有实现以下功能

public float floatVal(int doc) { throw new UnsupportedOperationException(); }
public int intVal(int doc) { throw new UnsupportedOperationException(); }
public long longVal(int doc) { throw new UnsupportedOperationException(); }
...

而在文档中对此一无所知,

它是如何工作的,我缺少什么来解决这个问题?

4

2 回答 2

0

在 schema.xml 中,您的 _version_ 字段类型是什么?我们遇到了这个问题,我们的 _version_ 字段类型设置为字符串,必须更改为 slong。

这仅在我们开始使用分片和/或复制时才表现出来。当它是单个节点上的单个核心时,根本没有问题。

错误的方法

<field name="_version_" type="string" indexed="true" stored="true" multiValued="false" />

行之有效的方式

<field name="_version_" type="slong" indexed="true" stored="true" multiValued="false" />
于 2015-04-01T16:47:13.953 回答
0

更正 -

类型应为“长”。它解决了这个问题。

于 2015-11-19T05:06:24.003 回答