solr的原子更新/局部更新
- set - to set a field.
- add - to add to a multi-valued field.
- inc - to increment a field.
String zk= "127.0.0.1:2183";
String root="/solr";
CloudSolrClient solrClient=new CloudSolrClient(zk+root);
solrClient.connect(); SolrInputDocument doc = new SolrInputDocument();
Map<String, String> partialUpdate = new HashMap<String, String>();
partialUpdate.put("set", "纯植物染发1次男女不限仅限短发,提供免费WiFi");
doc.addField("grouponId", "123456");
doc.addField("name", partialUpdate); Map<String,List<String>> cities=new HashMap<String, List<String>>();
List list=new ArrayList();
list.add("北京");
list.add("长春");
cities.put("set",list);
doc.addField("city",cities);
doc.addField("_version_",1); Map<String,String> subCat=new HashMap<String, String>();
subCat.put("add","美容"); doc.addField("subCat",subCat); Map<String,Long> price=new HashMap<String, Long>();
price.put("inc",100L);
doc.addField("price",price); try {
solrClient.add("groupon",doc);
solrClient.commit("groupon");
} catch (SolrServerException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} try {
solrClient.close();
} catch (IOException e) {
e.printStackTrace();
}
{
grouponId: "123456",
cat: [
"丽人"
],
subCat: [
"美发"
],
name: "纯植物染发1次男女不限仅限短发,提供免费WiFi1",
price: 67.80000305175781,
startTime: "2015-08-31T06:16:35Z",
endTime: "2016-06-25T15:59:59Z",
postTime: "2015-11-04T10:25:33.914Z",
city: [
"北京市",
"长春市"
],
region: [
"新郑市"
],
district: [
"炎黄广场"
],
_version_: 1535465635791765500
}
{
grouponId: "123456",
cat: [
"丽人"
],
subCat: [
"美发",
"美容"
],
name: "纯植物染发1次男女不限仅限短发,提供免费WiFi",
price: 167.8000030517578,
startTime: "2015-08-31T06:16:35Z",
endTime: "2016-06-25T15:59:59Z",
postTime: "2015-11-04T10:25:33.914Z",
city: [
"北京",
"长春"
],
region: [
"新郑市"
],
district: [
"炎黄广场"
],
_version_: 1535467687828783000
}
- version<0,如果这个文档存在,则solr会拒绝修改,如果不存在,则add这个文档
- 当version=0时,如果待修改的文档存在,则修改这个文档,如果不存在。则add这个文档
- version=1 ,如果文档存在,则update这个文档,如果不存在,则拒绝修改,
- version>1, 如果文档的_version_值和传入的version值不一样,则拒绝修改,值一样则修改。
- 如果有字段的store=false,但是在更新的时候没有给这个字段设置值,则这个字段在更新的时候数据会被丢掉; store=true的字段则不会。
- 针对multi-field字段,如果store=false, 则在原子更新 使用add时也会把这个字段之前的数据丢掉。
solr的原子更新/局部更新的更多相关文章
- Solr 18 - 通过SolrJ局部更新Solr中的文档 (原子操作、非覆盖操作)
目录 1 需求分析 2 需求实现 2.1 pom.xml依赖 2.2 Java代码示例 3 补充说明 3.1 关于文档中_version_的取值说明 3.2 store=true/false的区别 1 ...
- 升级至webpack4.x踩坑记(热更新局部更新失败的问题修复)
零.前言 webpack升级的时候,会碰到各种个样的问题,大多数网上都能查到解决方案最简单的方案. 思路如下: 1.把css-loader,xxxloader等依赖都升级到最新 2.根据webpack ...
- WebApiClient的JsonPatch局部更新
1. 文章目的 随着WebApiClient的不断完善,越来越多开发者选择WebApiClient替换原生的HttpClient,本文将介绍使用WebApiClient来完成JsonPatch提交的新 ...
- 通过Solrj实现对索引库中数据的局部更新操作
for (UpdateIndexDTO updateIndexDTO : data) { // 局部更新 SolrInputDocument doc = new SolrInputDocument() ...
- .Net页面局部更新的思考
最近在修改以前做的模块,添加一个新功能.整理了下才发现重用率很低,大部分的东西还是需要重新写.功能里用到了局部更新,所有整理一下一路来实现局部更新的解决方案及改进. 我接触的项目开发大多是以Asp.n ...
- 【SSH网上商城项目实战28】使用Ajax技术局部更新商品数量和总价
转自: https://blog.csdn.net/eson_15/article/details/51487323 昨天把项目部署了一下,玩了玩,今天完善了一下购物车中修改商品数量就能局部 ...
- winform 实现局部更新(如ajax实现)而整个界面不产生闪烁的解决方案
转自原文winform 实现局部更新(如ajax实现)而整个界面不产生闪烁的解决方案 一.通过对窗体和控件使用双缓冲来减少图形闪烁(当绘制图片时出现闪烁时,使用双缓冲) 对于大多数应用程序,.NET ...
- Elasticsearch之更新(全部更新和局部更新)
前面的基础, Elasticsearch之curl创建索引库 Elasticsearch之curl创建索引 Elasticsearch之curl创建索引库和索引时注意事项 Elasticsearch之 ...
- ASP.Net Core使用Ajax局部更新
由于目前ASP.NET Core中没有提供Ajax帮助器,所以参照 上一篇帖文,使用data-ajax-*属性来使用jQuery Unobtrusive Ajax功能实现HTML的局部页面元素更新. ...
随机推荐
- Microsoft Visual Studio 2013 Update 2 离线安装程序
☆ 微软官网地址:☆ http://www.microsoft.com/zh-cn/download/details.aspx?id=42665☆ 离线安装程序 直接下载链接:☆ Microsoft ...
- plsql导入导出表
原来总是直接 tools->import talbes->Oracle Import结果发现有的时候会出错:有的表不能正确导入, baidu+googel解决办法如下: 导出步骤: 1 t ...
- ReactiveCocoa 谈谈concat
今天的一个业务流程,业务流程大概就是这样的 1.从CoreData中获取之前的数据 2.更新界面 3.从网络获取数据 4.判断获取结果 5.处理错误判断 6.更新界面 7.判断结果numberOfNe ...
- [Castle Windsor]学习依赖注入
初次尝试使用Castle Windsor实现依赖注入DI,或者叫做控制反转IOC. 参考: https://github.com/castleproject/Windsor/blob/master/d ...
- KMP入门(匹配)
Description Given two sequences of numbers : a[1], a[2], ...... , a[N], and b[1], b[2], ...... , b[M ...
- sicily 1200欢迎提出优化方案
水题来的……我的做法是用a[10]数组表示每个数字出现的次数. 1200. Stick 限制条件 时间限制: 1 秒, 内存限制: 32 兆 题目描述 Anthony has collected a ...
- ThinkPHP3.2 加载过程(一)
加载过程(官方介绍) : 用户URL请求 调用应用入口文件(通常是网站的index.php) 载入框架入口文件(ThinkPHP.php) 记录初始运行时间和内存开销 系统常量判断及定义 载入框架引导 ...
- WebBench简介
/** @brief Web Bench Description* @author Tang Huaming* @qq 1426213638* @E-mail xiaoma ...
- ajax、json一些整理(1)
1.请求text数据,在success事件中手动解析 前台: $.ajax({ type: "post", ...
- Vijos P1062 迎春舞会之交谊舞
题目链接:https://vijos.org/p/1062 题意:输入n(n <= 1500)个女生左边有多少个男生.每个女生都和她左边最近的男生跳舞. 输出每个女生到可以与之跳舞的男生之间有几 ...