Solr 4.2 - 什么是_version_field?

meg*_*ana 14 solr solr4

我在solr配置中遇到错误.

Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:806)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:619)
        at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:1021)
        at org.apache.solr.core.CoreContainer.create(CoreContainer.java:1051)
        ... 10 more
Caused by: org.apache.solr.common.SolrException: Unable to use updateLog: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)
        at org.apache.solr.update.UpdateLog.init(UpdateLog.java:245)
        at org.apache.solr.update.UpdateHandler.initLog(UpdateHandler.java:84)
        at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:134)
        at org.apache.solr.update.DirectUpdateHandler2.<init>(DirectUpdateHandler2.java:95)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:532)
        at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:526)
        at org.apache.solr.core.SolrCore.createUpdateHandler(SolrCore.java:597)
        at org.apache.solr.core.SolrCore.<init>(SolrCore.java:790)
        ... 13 more
Caused by: org.apache.solr.common.SolrException: _version_field must exist in schema, using indexed="true" stored="true" and multiValued="false" (_version_ does not exist)
        at org.apache.solr.update.VersionInfo.getAndCheckVersionField(VersionInfo.java:57)
        at org.apache.solr.update.VersionInfo.<init>(VersionInfo.java:83)
        at org.apache.solr.update.UpdateLog.init(UpdateLog.java:242)
        ... 23 more
Run Code Online (Sandbox Code Playgroud)

我想知道它是什么_version_field,为什么必须要它?

任何人都能建议我吗?

ash*_*ish 27

在schema.xml中的"field"标记内添加以下字段定义

<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
Run Code Online (Sandbox Code Playgroud)


Jam*_*Con 18

_version_字段是内部字段,由部分更新过程,更新日志过程和SolrCloud使用.它仅在内部用于这些进程,只需_version_在schema.xml中提供该字段就足够了.

如果您想了解具体的信息_version_,可以访问该网站以了解使用的"乐观并发"更新过程_version_.