solr的原子更新 區域性更新

2021-07-25 07:37:19 字數 1558 閱讀 1126

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本身是提供了這個區域...