当前位置: 首页 > 知识库问答 >
问题:

用于部分文档更新的solrj api

江育
2023-03-14

但是,我还没有想好如何使用solrj API来实现这一点。

有没有人知道用Solrj是否可能?还是solrj没有跟上这个功能的速度?

更新:正如我在邮件列表中所描述的(参见这里的回复),我发现在solrj api中,SolrInputField的值可以是一个映射--它不一定必须是一个简单的标量值。如果它是一个映射,solrj会向字段的xml元素添加一个额外的update属性。例如,以下代码:

SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "foo");
doc.addField("id", "test_123");
doc.addField("description", partialUpdate);
<doc boost="1.0">
    <field name="id">test_123</field>
    <field name="description" update="set">foo</field>
</doc>

在这个例子中,我对这个附加属性使用了“set”这个词,但是它不起作用。Solr没有像我预期的那样更新字段。根据此链接:http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-update/valid value是“set”和“add”。

知道吗?

共有1个答案

宗政博文
2023-03-14

事实证明,上面问题中所示的代码段实际上是有效的。我不知道我第一次尝试的时候哪里出了问题,也许我只是忘记提交或者我的模式配置错误。

无论如何,这个问题是非常原生化的。然而,由于带有哈希映射的api文档太少,我想也许还是保留这个问题和答案吧。

哈希映射的键可以是以下三个值之一:

    null
 类似资料:
  • 问题内容: 使用Mongoose可以一次性在一个(子)文档上设置多个属性吗?我正在尝试做的一个例子: 假设我有以下架构: 然后我想做: 通常,我可以使用运算符来实现此目的,但是我的问题是在此示例中是的子文档(嵌入式架构)。所以当我尝试去做 它替换了由标识的子文档实例。目前,我已经通过手动设置仅字段来“解决”它,但是我希望有一种更好的方法来做到这一点。 问题答案: 基于的字段以编程方式构建对象,以使

  • 我们要求当前在SOLR中索引的文档可能需要定期进行部分更新。更新可以是。添加新字段B。更新现有字段的内容。我们模式中的一些字段是存储的,其他的没有。 Solr4确实允许这样做,但必须存储所有字段。见Update a new field to existing document和http://solr.pl/en/2012/07/09/solr-4-0-partial-documents-updat

  • 当我尝试使用以下对象更新它时 它给我的错误是cart.save()不是函数。我不知道我做错了什么,因为newcart.save()运行良好,但是,为什么cart.save()会引发错误?

  • 更新文档操作既可以完全覆盖现存文档全部字段,又可以部分更新字段(更改现存字段,或添加新字段)。 部分更新 如果你要部分更新文档(如更改现存字段,或添加新字段),你可以在 body 参数中指定一个 doc 参数。这样 doc 参数内的字段会与现存字段进行合并。 $params = [ 'index' => 'my_index', 'type' => 'my_type', 'i

  • 主要内容:update() 方法,save() 方法在 MongoDB 中,可以使用 update() 和 save() 方法来更新集合中的文档。其中 update() 方法可以更新现有文档中的值,而 save() 方法则可以使用传入文档来替换已有文档。 update() 方法 update() 方法用于更新现有文档中的值,其语法格式如下: db.collection_name.update(     <query>,     <update>,

  • 问题内容: 该代码按预期工作。但是,我不想更新第三个国家作为另一个文档,而是要更新第一个文档。 这样,文档ID 1将有3个国家:印度,中国和巴基斯坦。我想我需要使用doc_as_upsert参数更新API。但是我不确定如何编写JSON。 问题答案: 您可以使用update API 进行脚本更新: 更新 如果要在批量查询中使用它,也可以