2017-03-01 46 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