如何使用基本http请求对solr表执行更新?我可以使用以下内容提取数据:
http://localhost:8983/solr/database/select?q=id:6686
但是如果我想更改系统中已有的记录呢?我找到了一些文档here,声称我应该能够做一些与此相当的事情:
update solr set name = 'brian' where id = 6686
,但我无法在网址上找到任何可以执行此操作的内容......例如:
http://localhost:8983/solr/database/update?q=id:6686&set=name:brian
我使用solr 5.4.1。
答案 0 :(得分:1)
我写了一个解决这个问题的脚本。我希望这对未来的其他人有用......
function solr_update( $id, $value ) {
$ch = curl_init("http://localhost:8983/solr/core/update?commit=true");
$data = array(
"id" => $id,
"user_name" => array(
"set" => $value),
);
$data_string = json_encode(array($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_exec($ch);
}
solr_update($id, $value);
在此示例中,如果我设置$id = 20522
和$value = "Brian"
,solr_update
函数会将user_name
字段设置为Brian
id
}是20522
。
答案 1 :(得分:0)
Solr能够执行自我的5.1版本以来的原子更新。可以找到涵盖http和SolrJ更新的完整示例here。此外,请注意: