2016-11-16 1 views
0

Ich bin neu bei Solr Apache und ich versuche, eine Suchmaschine basierend auf dieser Plattform zu bauen. Ich habe alle Dokumente hochgeladen, aber es gibt mir weiterhin einen solchen Fehler, ich weiß nicht, was los ist. Dieser Fehler bringt andere Fehler wie CoreContainer, der Core-Dateien nicht erstellen kann und ich bin nicht in der Lage, eine Abfrage-Suche durchzuführen. Kannst du mir helfen?Update-Protokoll kann nicht verwendet werden: _version_fiels muss im Schema existieren

org.apache.solr.common.SolrException: _version_ field must exist in schema and be searchable (indexed or docValues) and retrievable(stored or docValues) and not multiValued (_version_ does not exist) 
at org.apache.solr.update.VersionInfo.getAndCheckVersionField(VersionInfo.java:68) 
at org.apache.solr.update.VersionInfo.<init>(VersionInfo.java:94) 
at org.apache.solr.update.UpdateLog.init(UpdateLog.java:308) 
at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:137) 
at org.apache.solr.update.UpdateHandler.<init>(UpdateHandler.java:94) 
at org.apache.solr.update.DirectUpdateHandler2.<init>(DirectUpdateHandler2.java:102) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) 
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
at java.lang.reflect.Constructor.newInstance(Constructor.java:422) 
at org.apache.solr.core.SolrCore.createInstance(SolrCore.java:706) 
at org.apache.solr.core.SolrCore.createUpdateHandler(SolrCore.java:768) 
at org.apache.solr.core.SolrCore.initUpdateHandler(SolrCore.java:1009) 
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:874) 
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:776) 
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:842) 
at org.apache.solr.core.CoreContainer.lambda$load$0(CoreContainer.java:498) 
at org.apache.solr.core.CoreContainer$$Lambda$24/135640095.call(Unknown Source) 
at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor.lambda$execute$0(ExecutorUtil.java:229) 
at org.apache.solr.common.util.ExecutorUtil$MDCAwareThreadPoolExecutor$$Lambda$25/328827614.run(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
at java.lang.Thread.run(Thread.java:745) 

Das sind mein Feld Build in schema.xml

<field name="_version_" type="long" indexed="true" stored="true"/> 
<field name="id" type="string" indexed="true" stored="true" required="true"/> 
<field name="title" type="string" indexed="true" stored="true"/> 
<field name="revision" type="int" indexed="true" stored="false"/> 
<field name="user" type="string" indexed="true" stored="false"/> 
<field name="userId" type="int" indexed="true" stored="false"/> 
<field name="text" type="text_en" indexed="true" stored="true"/> 
<uniqueKey> id </uniqueKey> 
+1

Haben Sie den Kern neu geladen, nachdem das Schema zu ändern? War das Feld vorhanden, als Sie die Dokumente indiziert haben? Ihre schema.xml sollte auch mehr enthalten, als Sie definiert haben, aber ich denke, Sie haben Teile weggelassen. Stellen Sie sicher, dass Sie '_version_' auch auf' multiValued = "false" 'setzen und verwenden Sie die korrekte Schema-Version (sehen Sie sich das Beispiel für Ihre Solr-Version an) – MatsLindh

Antwort

0

zuerst Sie neuesten configset mit Schema Neuesten configset zugeordnet herunterladen folgenden Befehl heruntergeladen wird unter Verwendung von: solr zk -downconfig -d Verzeichnis zum Download - n configset name -Z IP: Port zookeeper

zum Beispiel: solr zk -downconfig -d C: \ solr \ workingConfig -n configsetName -Z localhost: 2181

make erforderliche Änderungen in schema.xml
hinzufügen Version, wenn es nicht

Dann hochladen neuesten configset existiert folgenden Befehl Zookeeper verwenden. Hafen von zookeeper Zum Beispiel:

solr zk -upconfig -d Verzeichnis -n configset Name -z ip laden solr zk -upconfig -d C: \ solr \ workingConfig -n configsetName -z localhost: 2181

Dann müssen Sie Schema neu laden, damit Änderungen sofort wirksam werden können.

Schema kann nachgeladen werden mit folgendem Befehl ein: http://ip:port/solr/admin/collections?action=RELOAD&name=

Und dann versuchen docs hinzuzufügen

Verwandte Themen