solr支援三種型別的原子更新:
其中set可以是單值的也可以是multifiled, add 針對multi-field ,inc 對應數值型別
使用solrj進行原子更新
string zk= "127.0.0.1:2183";string root="/solr";
cloudsolrclient solrclient=new cloudsolrclient(zk+root);
solrclient.connect();
solrinputdocument doc = new
solrinputdocument();
mappartialupdate = new hashmap();
partialupdate.put("set", "純植物染髮1次男女不限僅限短髮,提供免費wifi");
doc.addfield("grouponid", "123456");
doc.addfield("name", partialupdate);
map> cities=new hashmap>();
list list=new
arraylist();
list.add("北京");
list.add("長春");
cities.put("set",list);
doc.addfield("city",cities);
doc.addfield("_version_",1);
mapsubcat=new hashmap();
subcat.put("add","美容");
doc.addfield("subcat",subcat);
mapprice=new hashmap();
price.put("inc",100l);
doc.addfield("price",price);
try
catch
(solrserverexception e)
catch
(ioexception e)
try
catch
(ioexception e)
原始資料:
執行**後:
關於更新中傳入的_version_值說明:
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支援三種型別的原子更新 其中set可以是單值的也可以是multifiled,add 針對multi field inc 對應數值型別 使用solrj進行原子更新 string zk 127.0.0.1 2183 string root solr cloudsolrclient solrcli...
Solr的原子更新
solr中如果想更改其中的某些字段,可以採用solr的原子更新。下面貼上一段簡潔的 如果solr中某些欄位是集合型別,在schema.xml配置檔案中需要將相應字段新增multivalued true 屬性 public static listatmoupdate list solrmaplist ...
android 區域性更新
需求 有的lcd是支援區域性重新整理的,所謂區域性重新整理也就是說,如果ui層有更新,驅動才會去重新整理framebuffer的區域,並且只需要重新整理這塊髒的區域,這需要lcd本身有乙個快取,能夠保持framebuffer上一幀的資料 android 2.1架構 android本身是提供了這個區域...