我正在使用nodejs的solr-client模块来查询我的solr集合。
现在我正在尝试使用solr-client在我的后端代码中添加和更新集合。
我已成功尝试http://lbdremy.github.io/solr-node-client/code/add.js.html将数据添加到集合中。但我不知道如何更新记录。
我尝试过使用这种方法(所有方法都可以在这里找到:http://lbdremy.github.io/solr-node-client/code/solr.js.html);
/**
* Send an update command to the Solr server with the given `data` stringified in the body.
*
* @param {Object} data - data sent to the Solr server
* @param {Function} callback(err,obj) - a function executed when the Solr server responds or an error occurs
* @param {Error} callback().err
* @param {Object} callback().obj - JSON response sent by the Solr server deserialized
*
* @return {Client}
* @api private
*/
Client.prototype.update = function (data, callback) {
var self = this;
this.options.json = JSON.stringify(data);
this.options.fullPath = [this.options.path, this.options.core, 'update/json?commit=' + this.autoCommit + '&wt=json']
.filter(function (element) {
if (element) {
return true;
}
return false;
})
.join('/');
updateRequest(this.options, callback);
return self;
}
但是这个方法如何知道要更新哪些记录?它是否在数据参数中搜索pk,当它与集合中的pk匹配时,它是否会更新?它需要额外的提交吗?
答案 0 :(得分:1)
但是这个方法如何知道要更新哪些记录?见下文
它是否在数据参数中搜索pk,当它与集合中的pk匹配时,它是否会更新? - 是的
是否需要额外提交? - 是的
从技术上讲,你可以使用INSERT和UPDATE。它们在SOLR中是相同的