Solr / Lucene更新查询从数据中删除属性

时间:2015-08-06 04:42:49

标签: json solr lucene

运行更新查询后,我遇到了数据中缺少属性的问题。

我运行这样的选择查询:

curl" http://localhost:8080/solr/collection1/select?q=title%3AHans+head:true&fl=title,uid,articleId,missing_Attribute,my_otherAttribute&wt=json&indent=true"

它返回一篇文章:

{ 
"title":"Hans", 
"uid":"18_UNIQUEID_123", 
"articleId":"123123123", 
"missing_Attribute":"M",
}

所以missing_Attribute = M,my_otherAttribute尚未出现。哪个没问题。

然后我使用以下命令对此文档运行更新查询: curl http://localhost:8080/solr/collection1/update?commit=true --data-binary @ MyUpdate.json -H'内容类型:application / json'

使用MyUpdate.json:

[
  {
    "uid": "18_UNIQUEID_123",
    "my_otherAttribute": {
      "set": "12"
    }
  }
]

再次运行select查询,结果为:

{ 
"title":"Hans", 
"uid":"18_UNIQUEID_123", 
"articleId":"123123123", 
"my_otherAttribute":"12",
}

my_otherAttribute = 12 但missing_Attribute已消失

为什么在更新my_otherAttribute时missing_Attribute已消失?

为什么它不影响任何其他字段?

1 个答案:

答案 0 :(得分:0)

回答我自己的问题,答案是: https://wiki.apache.org/solr/Atomic_Updates

我面临的问题是我想对文档进行部分更新。我正在使用Solr 4.10,所以理论上它会起作用。但只有架构支持它。我们没有。这就是属性消失的原因。