qqwe 发表于 2018-11-1 12:32:46

solr原子更新

import java.util.ArrayList;  
import java.util.Collection;
  
import java.util.Map;
  
import java.util.LinkedHashMap;
  
import org.apache.solr.client.solrj.SolrServer;
  
import org.apache.solr.client.solrj.impl.HttpSolrServer;
  
import org.apache.solr.common.SolrInputDocument;
  
public class User {
  
    public static void main(String[] args) throws Exception {
  
      String[] fields = {"name1_s","name2_s","name4_s"};
  
      Map setOper = null;
  
      String url = "http://xxxxx:8888/solr/userinfo";
  
      SolrServer server = new HttpSolrServer(url);
  
      SolrInputDocument doc = new SolrInputDocument(); //构造一个SolrInputDocument对象
  
      System.out.println(doc.keySet().size()); //0
  
      doc.addField("id","1");
  
      for(int i = 0; i< fields.length; i++){
  
             setOper = new LinkedHashMap();
  
             setOper.put("set","a2"); //当发现设置的字段值是Map类型时就认为是原子更新
  
             System.out.println(fields);
  
               if(!doc.keySet().contains(fields)){ //防止重复的列
  
                  doc.addField(fields, setOper);
  
               }
  
      }
  
      System.out.println(doc.keySet().size()); //4
  
      Collection docs = newArrayList();
  
      docs.add(doc);
  
      server.add(docs);
  
      server.commit();
  
    }
  
}


页: [1]
查看完整版本: solr原子更新