solr中如何对索引数据进行增量更新?原子更新是一种很好的方式。该目前原子更新支持以下五种修改器。
set: 对指定的field,修改其为指定的值(也可以是Null)
add: 对指定的多值field,添加指定的值
remove: 对指定的多值field,移除指定的值
removeregex: 对指定的多值field,移除符合指定正则表达式的值
inc:对指定的数值型field,增加指定的数值
eg:
原始数据
{"id":"mydoc",
"price":10,
"popularity":42,
"categories":["kids"],
"promo_ids":["a123x"],
"tags":["free_to_try","buy_now","clearance","on_sale"]
}
原子更新信息
{"id":"mydoc",
"price":{"set":99},
"popularity":{"inc":20},
"categories":{"add":["toys","games"]},
"promo_ids":{"remove":"a123x"},
"tags":{"remove":["free_to_try","on_sale"]}
}
{"id":"mydoc",
"price":99,
"popularity":62,
"categories":["kids","toys","games"],
"tags":["buy_now","clearance"]
}