我相信你的用例是你有一個帶有自動增量主鍵的僅附加表格的地方。 Solr DIH似乎不支持你想要的。 (儘管詢問Solr用戶郵件列表。)
但是,有一種替代方法可以嘗試使用Solr Wiki DataImportHandlerDeltaQueryViaFullImport中給出的示例。如果您可以將Solr索引中最大的id
作爲參數傳遞給導入請求,則可以在數據導入查詢中使用該參數。
爲此,您需要先發出一個查詢到Solr,以獲取最大的ID:
q=*:*&sort=id desc&rows=1&fl=id
調用此MAXID
。然後,當你打電話給你的全進口通過這個ID,如:
/dataimport?command=full-import&id=MAXID
你可以使用${dataimporter.request.id}
在您的數據配置的ID請求PARAM。 在您的數據-config.xml中查詢應該是這樣的:
<entity name="item"
pk="id"
query="SELECT id, name FROM item
WHERE id > '${dataimporter.request.id}'">
當然,做您所有的文件完全重新索引,您將通過id=0
,假設0是你得到了最小鍵值。
還沒有嘗試過這個,但是你可以嘗試並告訴你發現了什麼。如果你使用的是MySQL,你可以保留時間戳列爲DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
,甚至不用麻煩自己更新它。)
(這樣說的話,顯然很容易在表中添加時間戳列。
好的想法!我完全同意「時間戳」是最好的選擇,因爲我們也可以處理更新。只是尋找替代品!不管怎麼說,還是要謝謝你! – Mavellin 2013-04-01 03:37:26