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]