使用节点模块solr-client向Solr-4.3.0添加和更新数据

时间:2013-07-08 07:29:42

标签: node.js solr solr4 node-modules

让我举一个例子来解释这个场景。假设我有索引到Solr的数据:

{
 "id" : "872919092",
 "filename" : "science_book",
 "path" : "/local/abc/"
}

现在我想修改已使用id : 872919092索引到Solr的数据。我需要使用filename : science_book更改filename : history_book,并将新属性topic : mughal添加到保持path不变的相同索引数据中。我不想再次传递path,因为它没有变化并且已经索引到Solr。根据{{​​3}}的文件 这个有可能。我如何使用nodejs solr-client Solr方法做到这一点?我想实现以下场景:

  1. 如果具有特定id的Solr索引数据中不存在该属性,请将该属性添加到已编制索引的数据中,以保持先前索引的数据不变。
  2. 如果具有特定id的Solr索引数据中已存在该属性,请更改先前索引属性的值,同时保持其他索引数据不变。
  3. 我传递的数据是在Solr中添加为散列,它只是要添加到Solr中已索引数据的新属性的组合,以及先前索引数据的值更改为Solr。

    注意:我正在使用 Solr-4.3.0 和节点模块 solr-client 将数据添加到Solr。

1 个答案:

答案 0 :(得分:3)

您需要在字段中添加set或add并删除其余字段。你需要id和字段。

var doc = {
   "id" : "872919092",
   filename : {"set" : "history_book"},
   topic : {"add" : "mughal"}
}

client.add(doc)

另请注意,您可以使用inc或dec

递增或递减int