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的局部页面元素更新. ...
随机推荐
- SQLServer数据操作(建库、建表以及数据的增删查改)
SQLSever数据操作 一.建立数据库: create database DB ---数据库名称 ( name=data1 --文件名, ...
- 日志记录类LogHelper
开源日志log4net使用起来很方便,但是项目中不让用,所以自己重写了一个类,用来记录日志,比较简单. 1.首先是可以把日志分成多个类型,分别记录到不同的文件中 /// <summary> ...
- Metadata file not found - Data.Entity.Model
错误 3 正在编译转换: 未能找到元数据文件“F:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\..\IDE\Micr ...
- Mysql 中 like 查询存在反斜杠的解决办法
如 要查询 %\ABC\% 应该这样写, 写成四个反斜杠 like '%\\\\ABC\\\\%'
- 关于ios的手势识别(GestureRecognizers)讲解
大家都知道,苹果的设备,不管是mac机器还是iPhone或iad,都支持多点触控,进而延伸了多种手势识别的功能.这为用户带来了很大的便携性和多样灵活性,极大的方便了用户的使用.足以见手势识别(Gest ...
- 为 Date 对象添加 ago 属性
/* * 此处,__defineGetter__与__defineSetter__相当于C#实体中类中的get与set **/ Date.prototype.__defineGetter__('ago ...
- 关于css中的align-content属性详解
align-content 作用: 会设置自由盒内部各个项目在垂直方向排列方式. 条件:必须对父元素设置自由盒属性display:flex;,并且设置排列方式为横向排列flex-direction:r ...
- 17_JSP_入门
[JSP简述] JSP全称是Java Server Pages,它和Servlet技术一样,都是一种用于开发动态Web页面的技术. * html页面:用html写的页面 * JSP页面:用html写页 ...
- 11_Servlet生命周期
[生命周期] 以前:之前的java程序,我们的Java类自己去new对象,自已实例化对象去调用. 现在:Servlet程序,Servlet的生命周期由TomCat服务器控制的. 我们要研究Servle ...
- jquery改变多个css样式
<!DOCTYPE html> <html> <head> <script src="http://ajax.googleapis.com/ajax ...