我是 SOLR 的新手。使用 DataImporter 将 MySQL 记录引入索引。导入有效,但创建了 0 个文档。我看到以下错误:
org.apache.solr.common.SolrException:文档缺少必填的 uniqueKey 字段:id
我的 data-config.xml 如下所示:
<dataConfig>
<dataSource type="JdbcDataSource" driver="org.gjt.mm.mysql.Driver" url="jdbc:mysql://localhost/gartner" user="" password="" batchSize="-1" />
<document name="inquiries">
<entity name="inquiry_data" query="SELECT * FROM research_srv_req">
<field column="reference_id" name="reference_id" />
<field column="type" name="type" />
<field column="sub_type" name="sub_type" />
<field column="subject" name="inquiry_subject" />
<field column="advice" name="advice" />
<field column="client_question" name="client_question" />
<field column="decision_stage_desc" name="decision_stage_desc" />
<field column="acct_name" name="acct_name" />
<field column="acct_sic_type" name="acct_sic_type" />
<field column="acct_sic_sub_type" name="acct_sic_sub_type" />
<field column="enterprise_sic_type" name="enterprise_sic_type" />
<field column="enterprise_sic_sub_type" name="enterprise_sic_sub_type" />
<field column="client_job_title" name="client_job_title" />
</entity>
</document>
我将以下内容添加到我的 schema.xml 文件中:
<field name="reference_id" type="int" indexed="true" stored="true" required="true" multiValued="false" />
<field name="type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="inquiry_subject" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="advice" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="client_question" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="decision_stage" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="acct_name" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="acct_sic_type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="acct_sic_sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="enterprise_sic_type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="enterprise_sic_sub_type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
<field name="client_job_title" type="string" indexed="true" stored="true" required="true" multiValued="false" />
原始 schema.xml 也有以下行:
<uniqueKey>id</uniqueKey>
我尝试将 id 更改为 reference_id 这是我数据库中的唯一列,但是 SOLR 无法加载以下堆栈转储:
消息 {msg=SolrCore 'collection1' 由于初始化失败不可用:初始化 QueryElevationComponent 时出错。,trace=org.apache.solr.common.SolrException:由于初始化失败,SolrCore 'collection1' 不可用:初始化 QueryElevationComponent 时出错。在 org.apache.solr.core.CoreContainer.getCore(CoreContainer.java:860) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:251) 在 org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:158) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 在 org.apache。 catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 在 org.apache.catalina.core.StandardContextValve。调用(StandardContextValve.java:191)在 org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 在 org.apache .catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 在 org.apache.coyote.http11.Http11Processor.process(Http11Processor.java :859) 在 org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) 在 org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 在 java。 lang.Thread.run(Unknown Source) 原因:org.apache.solr.common.SolrException:初始化 QueryElevationComponent 时出错。在 org.apache.solr.core.SolrCore.(SolrCore.java:835) 在 org.apache.solr.core.SolrCore.(SolrCore.java: 629) 在 org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:622) 在 org.apache.solr.core.CoreContainer.create(CoreContainer.java:657) 在 org.apache.solr.core.CoreContainer $1.call(CoreContainer.java:364) at org.apache.solr.core.CoreContainer $1.call(CoreContainer.java:356) at java.util.concurrent.FutureTask $Sync.innerRun(Unknown Source) at java.util .concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask .run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 更多原因:org.apache。 solr.common.SolrException:初始化 QueryElevationComponent 时出错。在组织。solr.common.SolrException:初始化 QueryElevationComponent 时出错。在 org.apache.solr.core.SolrCore.(SolrCore.java:835) 在 org.apache.solr.core.SolrCore.(SolrCore.java:629) 在 org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer .java:622) 在 org.apache.solr.core.CoreContainer.create(CoreContainer.java:657) 在 org.apache.solr.core.CoreContainer$1.call(CoreContainer.java:364) 在 org.apache.solr .core.CoreContainer$1.call(CoreContainer.java:356) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent .Executors$RunnableAdapter.call(Unknown Source) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker java.util 中的 .runTask(未知来源)。concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ... 1 更多原因:org.apache.solr.common.SolrException:初始化 QueryElevationComponent 时出错。在 org.apache.solr.handler.component.QueryElevationComponent.inform(QueryElevationComponent.java:240) 在 org.apache.solr.core.SolrResourceLoader.inform(SolrResourceLoader.java:601) 在 org.apache.solr.core.SolrCore .(SolrCore.java:830) ... 13 更多原因:java.lang.NumberFormatException:对于输入字符串:java.lang.NumberFormatException.forInputString(Unknown Source) 处 java.lang.Integer 处的“MA147LL/A”。 org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:387) 的 java.lang.Integer.parseInt(Unknown Source) 的 parseInt(Unknown Source) org.apache.solr.schema.TrieField.readableToIndexed(TrieField .java:378) 在 org.apache.solr.handler.component。
我究竟做错了什么?