Подтвердить что ты не робот

Solr 4.2 - что такое _version_field?

Я получаю ниже ошибку в моей конфигурации 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

Я хотел знать, что такое _version_field, и почему его нужно требовать?

Может кто-нибудь предложить мне это?

4b9b3361

Ответ 1

Поле _version_ - это внутреннее поле, которое используется процедурой частичного обновления, процессом журнала обновлений и SolrCloud. Он используется только внутри этих процессов, и просто обеспечить поле _version_ в файле schema.xml должно быть достаточно.

Если вы хотите получить информацию о том, что происходит с _version_, вы можете посетить этот веб-сайт, чтобы узнать о "оптимистический concurrency" процесс, который использует _version_.

Ответ 2

добавьте ниже определение поля внутри тега "field" в schema.xml

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

Ответ 3

Если вы удалите его, вы также должны удалить журнал транзакций из файла solrconfig.xml. См. Ссылку .