2013-12-10 99 views
0

我正在爲nodejs使用solr-client模塊來查詢我的solr集合。使用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匹配,它會得到更新? - 是的

它是否需要額外的提交? - 是的

從技術上講,你可以使用插入以及更新。他們是相同的SOLR

+0

http://plnkr.co/edit/yDRlTZXqFxYGULUSf6PP?p=catalogue 你可以看看爲什麼添加作品,但更新不會? – Vincent

+0

可以顯示模式文件嗎? –

+0

http://plnkr.co/edit/RGCCp1rcUxotodAOCSso?p=catalogue – Vincent