2017-03-01 45 views
0

我有更新的麻煩Solr的-4.10 領域假設我有下面的文檔:SOLR更新一個新的領域存在的文件(使用python3,黑斑)

"docs": [ 
    { 
    "id": "2001354750", 
    "post": [ 
     "小馬也瘋狂------地位之爭。" 
    ], 
    "_version_": 1560655968803487700 
    }, 
    { 
    "id": "2001187260", 
    "post": [ 
     "北京的小純潔們,週日見。#硬漢擺拍清純照#" 
    ], 
    "_version_": 1560655968822362000 
    } 
] 

,但我想加場CMNT成DOC象下面這樣:

"docs": [ 
    { 
    "id": "2001354750", 
    "post":"小馬也瘋狂------地位之爭。", 
    "cmnt":"Really?", 
    "_version_": 1560655968803487700 
    }, 
    { 
    "id": "2001187260", 
    "post": "北京的小純潔們,週日見。#硬漢擺拍清純照#", 
    "cmnt":"Shy", 
    "_version_": 1560655968822362000 
    } 
] 

但是我用

import scorched 
si = scorched.SolrInterface("http://localhost:8983/solr/chatbot") 
document = {"id" : ID, 
      "post" : arg 
      } 
si.add(document) 
si.commit() 

ID是一個唯一的密鑰,但是當我運行上面的代碼時, 如果ID是相同的,它將覆蓋我的原始數據。 我該如何解決它?

回答

0

嘗試使用捲曲帶/更新

例子:

$ curl http://localhost:8983/solr/collection_name/update -d ' 
[ 
{"id"   : "2001187260", 
    "cmnt" : {"set":"Shy"} 
} 
]' 

檢查Here更多細節

+0

非常感謝你,它的工作! 但是,如果我的數據非常大,這將花費大量時間進行迭代,是否還有其他解決方案? –

+0

因爲我知道你可以用兩種方式更新文檔的一部分。第一次原子更新(正如我在答案中所示)第二次是樂觀併發。 Upvote或接受我的答案,如果你覺得有用。謝謝 – vinod