如何解决SolrException:文档[null]缺少必填字段:id
|| 我已经更改了schema.xml文件,并在其中添加了一些字段,如下所示<field name=\"url\" type=\"string\" indexed=\"true\" stored=\"true\" />
<field name=\"content_type\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"title\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"keywords\" type=\"text\" indexed=\"true\" stored=\"true\" multiValued=\"true\" />
<field name=\"text\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"timestamp\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"public\" type=\"text\" indexed=\"true\" stored=\"true\" multiValued=\"true\" />
<field name=\"groups\" type=\"text\" indexed=\"true\" stored=\"true\" multiValued=\"true\" />
<field name=\"sitename\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"context\" type=\"text\" indexed=\"true\" stored=\"true\" />
<field name=\"modified_date\" type=\"text\" indexed=\"true\" stored=\"true\" />
因此,对应于这些字段,我创建了一个xml文件,并向其中添加了一些虚拟数据。
<add><doc>
<field name=\"url\">http://www.host.com/</field>
<field name=\"content_type\">text/html</field>
<field name=\"title\">Testing Data</field>
<field name=\"keywords\">software</field>
<field name=\"keywords\">software_cycle</field>
<field name=\"text\">search</field>
<field name=\"timestamp\">2006-02-13T15:26:37Z</field>
<field name=\"public\">Optimized</field>
<field name=\"public\">Optimized_data</field>
<field name=\"groups\">Standards</field>
<field name=\"groups\">Standards_data</field>
<field name=\"sitename\">GoInfo</field>
<field name=\"context\">Scalability</field>
<field name=\"modified_date\">2010-11-13T15:26:37Z</field>
</doc></add>
当我尝试将数据重新索引为solr时,如下所示:-
C:\\apache-solr-3.2.0\\example\\exampledocs>java -Durl=http://localhost:7788/solr/u
pdate -jar post.jar *.xml
SimplePostTool: version 1.3
SimplePostTool: POSTing files to http://localhost:7788/solr/update..
SimplePostTool: POSTing file 30-example.xml
SimplePostTool: POSTing file hd.xml
SimplePostTool: POSTing file other.xml
SimplePostTool: FATAL: Solr returned an error #400 Bad Request
在text.xml文件之后,我总是收到错误消息,如果删除此text.xml文件,则不会收到任何错误消息。如果包含text.xml文件,这是我收到的以下错误消息。任何帮助将不胜感激。
SEVERE: org.apache.solr.common.SolrException: Document [null] missing required field: id
at org.apache.solr.update.DocumentBuilder.toDocument(DocumentBuilder.java:336)
at org.apache.solr.update.processor.RunUpdateProcessor.processAdd(RunUpdateProcessorFactory.java:60)
at org.apache.solr.handler.XMLLoader.processUpdate(XMLLoader.java:147)
at org.apache.solr.handler.XMLLoader.load(XMLLoader.java:77)
at org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:67)
at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129)
at org.apache.solr.core.SolrCore.execute(SolrCore.java:1360)
at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:356)
at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:252)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:864)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1665)
at java.lang.Thread.run(Thread.java:662)
解决方法
您说您添加了一些字段(应该添加到示例架构中),但是您没有提到已经存在的字段发生了什么。我猜您将先前存在的字段留在了那里,这意味着
id
仍然是必填字段(请参见示例模式中的此处),因此会出现错误。
, 做一个
\“主键\” ID。确实需要。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。