2017-04-12 17 views
0

我想加載solr 6.5集合中的CSV文件,使用solr管理界面。這裏是我做的步驟,並得到以下錯誤:Solr索引使用CSV更新用戶界面:獨特的密鑰創建爲一個多值字段出錯

  1. 在Zookeeper中創建一個數據驅動的託管架構配置集。將唯一鍵更改爲「MyId」(字符串字段)而不是默認ID。

<uniqueKey>MyId</uniqueKey> 
     ... 
<field name="MyId" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
  • 創建的集合和相關聯的上述的配置集合(使用新管理UI)。

  • 使用管理界面(集合 - >集合名稱下拉 - >文檔)加載CSV文件。我添加了請求處理參數&rowid=MyId參數。我的CSV文件中有MyId字段。在裝入我得到這個錯誤:

    Document contains multiple values for uniqueKey field: MyId=[82552329, 1] at org.apache.solr.update.AddUpdateCommand.getHashableId(AddUpdateCommand.java:168)

  • 在不改變唯一的ID,只是使用默認id(帶自動生成的UUID)字段的CSV裝載罰款。但我需要的唯一ID是MyId

  • 我想知道爲什麼爲我的多值鍵字段報道,我的CSV並沒有真正包含的多值數據,這是簡單的逗號分隔的數字和字符串字段請提出可能出錯的地方。

    注:我做了這些改變以及Solr Schemaless Mode creating fields as MultiValued的架構(沒有幫助,因爲這個問題是輸入數據)

    編輯:添加完整的異常跟蹤

    https://pastebin.com/raw/juRj7ZUi

    +0

    日誌說什麼?請告訴我log4j.Something的完整日誌告訴solr將你的字符串分割成數組。 – Oyeme

    +0

    添加了一個異常跟蹤。您可能正在更新CSV處理程序中分割它。但我想知道它可能是什麼?雖然,我沒有在我的請求處理程序中添加任何CSV分割參數。 – Ganesh

    +1

    你可以在這裏指定更多的參數https://cwiki.apache.org/confluence/display/solr/Uploading+Data+with+Index+Handlers,並嘗試使用控制檯而不是UI,你可以傳遞更多的參數 – Oyeme

    回答

    0

    我在文檔csv update params的線索,這個問題是關於這個參數,我通過(&rowid=MyId)。正如文檔所述,我們應該通過這個參數來添加行號作爲id。這就解釋了爲什麼我的密鑰(MyId)成爲多值([我的實際密鑰,行號])。但是,如果我刪除這個參數它給出了一個錯誤,id沒有被填充。這意味着它期待一個id字段。因此,添加&literal.id=1,現在一切正常(這是因爲在我的架構中需要id字段。)。感謝您的幫助。

    相關問題