2016-06-21 58 views
0

我已經與無模式模式鏈接dataimporthandler。如下所示,將配置參數「add-unknown-fields-to-the-schema」添加到dataimporthandler並配置所有內容。 Dataimporthandler導入數據並運行良好,但solr無法將未知域添加到模式。它只適用於現有的領域。這是dataimporthandler對請求的回答。無法鏈式Dataimporthandler和無模式添加未知字段

{ "responseHeader": { "status": 0, "QTime": 0 }, "initArgs": [ "defaults", [ "update.chain", "add-unknown-fields-to-the-schema", "config", "db-data-config.xml" ] ], "command": "status", "status": "idle", "importResponse": "", "statusMessages": { "Total Requests made to DataSource": "1", "Total Rows Fetched": "273", "Total Documents Processed": "273", "Total Documents Skipped": "0", "Full Dump Started": "2016-06-21 13:29:48", "": "Indexing completed. Added/Updated: 273 documents. Deleted 0 documents.", "Committed": "2016-06-21 13:29:49", "Time taken": "0:0:0.543" } }

你可以看到,我的配置是好的。下面是solrconfig文件。

<requestHandler name="/dataimport" class="solr.DataImportHandler"> 
    <lst name="defaults"> 
     <str name="update.chain">add-unknown-fields-to-the-schema</str> 
     <str name="config">db-data-config.xml</str> 
    </lst> 

我希望能夠從數據庫中添加未知領域。

回答

1

DataImportHandler優先於無模式模式。如果您嘗試將其自動映射(列名稱與字段名稱),則會執行該操作以檢查模式中是否存在該字段以瞭解如何映射該字段。這樣,您只能在模式中定義您想要的字段,並且會忽略其餘部分。它不知道無模式模式可以彌補這一點,也沒有提供任何可供選擇的場排除機制(如果接受每個字段是默認值,您將需要這種機制)。

如果您在DIH中明確定義字段映射,它應該可以工作。

如果你真的不知道你會得到什麼字段,你最好從數據庫內容生成一個CSV,XML或JSON文件,並將它推送到Solr,而不是用DIH拉取它。

+0

DIH還包括一些鏈處理器,如果它除了模式生成器,它應該使用它。我知道我有選擇將它導出一些地方,但它不足以滿足我的需求。 –

相關問題