2013-03-07 53 views
1

数据config.xml的是如下Solr的数据导入处理程序无法索引数据

<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

你在你的schema.xml中有一个“唯一键”字段?你如何为每个被索引的文档构造它? – Mavellin 2013-03-07 11:12:05

+0

我是solr的新手,我在现有的schema.xml中添加了这个字段。 – 2013-03-07 11:17:49

回答

3

对于每个文档,您将拥有一个uniqueKey以唯一标识它(可以认为类似于数据库中的PrimaryKey)。

修改你的实体数据-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应用程序并执行完全导入。

+0

在您的示例中,''中的''元素不是必需的,因为列名和“字段”名称相同。 – 2013-03-07 22:20:06

3

我可以从导入处理程序响应阅读:

"Total Documents Failed": "3" 

看起来对我来说,就好像您的查询也存在一些问题,或者如果加载的架构不“匹配”的DIH输出中。尽管强烈建议,但不需要字段<uniqueKey>。但缺少的唯一密钥声明应该导致该错误。

查看管理控制台上的“日志记录”页面。如果数据导入处理程序对查询有问题,那么您会在那里找到一个日志条目。

如果您在solr实例运行时应用了任何更改,请不要忘记刷新架构和DIH配置文件。

0

某些特定字段(包括版本)不应位于您的字段列表中。 (FL =“*”,这是包含了所有领域) 逐一尝试字段对应的ID

FL =“标识,色”

相关问题