Solr原子更新

Solr原子更新

Solr 4.0开始支持简单的原子更新和添加字段。

参数说明

Solr支持多种修饰符,自动更新文档的值:

  • set – 更新一个字段
  • add – 添加一个字段
  • inc – 在原有值的基础上增加(看下面的例子更清楚)

备注: 所有原始字段必须存储(在fieldType 里面设置 stored=true

操作例子

第一步:添加一条数据

1
2
3
4
5
6
7
8
9
curl http://localhost:8983/solr/update -H 'Content-type:application/json' -d '
[
{
"id": "book1",
"title": "Snow Crash",
"copies_i": 5,
"cat": "Science Fiction"
}
]'

第二步:修改字段

修改一个字段author,把copies_i字段的值加3,添加一个cat字段:

1
2
3
4
5
6
7
8
9
curl http://localhost:8983/solr/update -H 'Content-type:application/json' -d '
[
{
"id": "book1",
"author": {"set": "Neal Stephenson"},
"copies_i": {"inc": 3},
"cat": {"add": "Cyberpunk"}
}
]'

第三步:查询数据

1
curl http://localhost:8983/solr/get?id=book1

查询结果:

1
2
3
4
5
6
7
8
9
10
{
"doc": {
"id": "book1",
"title": ["Snow Crash"],
"copies_i": 8,
"cat": ["Science Fiction", "Cyberpunk"],
"author": "Neal Stephenson",
"_version_": 1408729977723027456
}
}

遗留问题

  1. 中文分词器字段更新后丢失 - 用中文分词器的字段更新后会丢失
  2. SolrJ支持 - solrj没有提供相应的方法,这部分有待研究

相关资源

Java例子代码可供下载参考。

© 2025 Solr Community of China All Rights Reserved. 本站访客数人次 本站总访问量
Theme by hiero