1

数据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 如下所示

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."
}
4

3 回答 3

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 是您的表 car的主键。

在您的 schema.xml 文件中,添加以下行,

<field name="id" type="string" indexed="true" stored="true" required="true" />

另外,请确保以下文本,

<uniqueKey>id</uniqueKey>

在您的 schema.xml 中没有注释掉。

现在,重新启动 Solr Web 应用程序并执行完全导入。

于 2013-03-07T11:53:18.397 回答
3

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

"Total Documents Failed": "3"

在我看来,您的查询似乎有问题,或者加载的模式与 DIH 输出不“匹配”。<uniqueKey>尽管强烈推荐,但不需要字段。但是缺少唯一键声明应该会导致该错误。

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

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

于 2013-03-07T22:28:12.767 回答
0

某些特定字段,包括version,不应出现在您的字段列表中。(fl="*" 这是包含所有字段)使用相应的 id 单独尝试每个字段

fl="id,颜色"

于 2018-02-07T07:27:21.103 回答