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は、テーブルカーのprimaryKeyです。

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 に答える