{
"text": "qwe",
"id": "01a3aa6db06d39e8",
"_version_": 1471599607983112200
}
我想更新字段"短语",所以我将以下内容发布到127.0.0.1:8983/solr/update/?commit=true:
[
{
"id" : "01a3aa6db06d39e8",
"text" : {"set":"qwe. updated"}
}
]
Solr说400 Bad Request并返回以下内容:
{
"responseHeader":
{
"status":400,"QTime":0},
"error":{"msg":"Document contains multiple values for uniqueKey field: id=[01a3aa6db06d39e8, 0000000000000000]","code":400}
}
}
如何正确更新包含唯一密钥的文档?
答案 0 :(得分:0)
试试这个。
{"id":"01a3aa6db06d39e8","text":"hello world , this is an update"}
如果你想把文本作为像mongodb这样的多维数组,那就无法在solr中容纳,但是它有办法,有点乱。
如果您正在使用脚本来更新文档,我认为您正在使用循环包括提交和while循环中的实例化,就像PHP上的这个:
while($row = mysqli_fetch_assoc($result))
{
$client = new SolrClient($options);
$doc = new SolrInputDocument();
$doc->addField('id', $row['id']);
$doc->addField('date', '2015-06-01T00:00:0.0Z');
$doc->addField('name', $row['name']);
$updateResponse = $client->addDocument($doc);
}
$client->commit();