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(); }
...
虽然在documentation中没有任何相关内容,
它是如何工作的,以及我缺少解决这个问题的方法?
答案 0 :(得分: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" />
答案 1 :(得分:0)
更正 -
类型应为&#34; long&#34;。它解决了这个问题。