数据config.xml如下
<dataConfig>
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/solrdata" user="root" password="root" />
<document name="cars">
<entity name="car" query="SELECT color FROM solrdata.car ">
<field column="color" name="color" />
</entity>
</document>
</dataConfig>
schema.xml与follsws一样
field name="color" type="string" indexed="true" stored="true" />
我在调试模式下检查了它获取数据但无法处理它
调试模式的输出如下:
{
"responseHeader": {
"status": 0,
"QTime": 312
},
"initArgs": [
"defaults",
[
"config",
"data-config.xml"
]
],
"command": "full-import",
"mode": "debug",
"documents": [
{
"COLOR": [
"red"
]
},
{
"COLOR": [
"silver"
]
},
{
"COLOR": [
"oii"
]
}
],
"verbose-output": [],
"status": "idle",
"importResponse": "",
"statusMessages": {
"Total Requests made to DataSource": "1",
"Total Rows Fetched": "3",
"Total Documents Skipped": "0",
"Full Dump Started": "2013-03-07 15:49:14",
"Total Documents Processed": "0",
"Total Documents Failed": "3",
"Time taken": "0:0:0.281"
},
"WARNING": "This response format is experimental. It is likely to change in the future."
}
答案 0 :(得分:3)
每个文档都有一个 uniqueKey 来唯一标识它(可以认为与数据库中的 PrimaryKey 类似)。
在data-config.xml中修改您的实体,如下所示:
<entity name="car" query="SELECT color,id FROM solrdata.car ">
<field column="id" name="id" />
<field column="color" name="color" />
</entity>
注意:字段ID是表格车的 primaryKey 。
在schema.xml文件中,添加以下行
<field name="id" type="string" indexed="true" stored="true" required="true" />
另外,请确保以下文字
<uniqueKey>id</uniqueKey>
你的schema.xml中的没有被注释掉。
现在,重新启动Solr Web应用程序并执行完全导入。
答案 1 :(得分:3)
我可以从导入处理程序响应中读取:
"Total Documents Failed": "3"
向我看,好像您的查询存在一些问题,或者加载的架构是否与DIH输出“匹配”。强烈推荐使用<uniqueKey>
字段。但缺少的唯一密钥声明应导致该错误。
查看管理控制台上的“日志记录”页面。如果数据导入处理程序遇到查询问题,那么您将在那里找到一个日志条目。
如果在solr实例运行时应用了任何更改,请不要忘记刷新架构和DIH配置文件。
答案 2 :(得分:0)
某些特定字段(包括版本)不应位于字段列表中。 (fl =&#34; *&#34;这包含所有字段) 分别使用相应的ID
尝试每个字段FL =&#34;编号,颜色&#34;