I am getting below error in my solr configuration.
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
I wanted to know that what is _version_field
, and why its must required ?
Can anybody suggest me on this??
In a nutshell, Solr uses a special version field named _version_ to enforce safe update semantics for documents. In the case of two different users trying to update the same document concurrently, the user that submits updates last will have a stale version field, so their update will fail.
The Solr search engine uses a schema. xml file to describe the structure of each data index. This XML files determines how Solr will build indexes from input documents, and how to perform index and query time processing. As well as describing the structure of the index, schema.
Apache Solr stores the data it indexes in the local filesystem by default. HDFS (Hadoop Distributed File System) provides several benefits, such as a large scale and distributed storage with redundancy and failover capabilities. Apache Solr supports storing data in HDFS.
add the below field definition inside "field" tag in schema.xml
<field name="_version_" type="long" indexed="true" stored="true" multiValued="false"/>
The _version_
field is an internal field that is used by the partial update procedure, the update log process, and by SolrCloud. It is only used internally for those processes, and simply providing the _version_
field in your schema.xml should be sufficient.
If you'd like information as to exactly what is going on with _version_
, you can visit this website to learn about the "optimistic concurrency" update process, which uses _version_
.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With