/**
* 更新solr的原数据
* @param solrId solr的Id
* @param loveNum 需要更改的字段 -1则表示不做修改
* @param seeNum 需要更改的字段 -1则表示不做修改
* @param blackNum 需要更改的字段 -1则表示不做修改
* @param type 选择哪一个solr数据包 1为social 2为 shopping
*/
public void updateCondition(String solrId,int loveNum,int seeNum,int blackNum,int type){
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id",solrId);
judgeIfUpdate(doc, "loveNum", loveNum);
judgeIfUpdate(doc, "seeNum", seeNum);
judgeIfUpdate(doc, "blackNum", blackNum);
try {
httpSolrServer(type).add(doc);
httpSolrServer(type).commit();
System.out.println("原子更新成功!");
} catch (SolrServerException e) {
Log4j.Log4JOutError(e);
System.out.println("原子更失敗!");
} catch (IOException e) {
Log4j.Log4JOutError(e);
System.out.println("原子更失敗!");
}
}
/**
* 判断在solr中改索引是否需要更新
* @param doc
* @param value 索引的名称
* @param changeNum 索引的值 如果为-1 则表示不更新
* @author Alan 2017-3-6上午11:34:22
*/
public void judgeIfUpdate(SolrInputDocument doc,String value,int changeNum){
if(changeNum!=-1){
Map<String,Object> map=new HashMap<String, Object>();
map.put("set",changeNum);
doc.addField(value, map);
}
}
* 更新solr的原数据
* @param solrId solr的Id
* @param loveNum 需要更改的字段 -1则表示不做修改
* @param seeNum 需要更改的字段 -1则表示不做修改
* @param blackNum 需要更改的字段 -1则表示不做修改
* @param type 选择哪一个solr数据包 1为social 2为 shopping
*/
public void updateCondition(String solrId,int loveNum,int seeNum,int blackNum,int type){
SolrInputDocument doc = new SolrInputDocument();
doc.addField("id",solrId);
judgeIfUpdate(doc, "loveNum", loveNum);
judgeIfUpdate(doc, "seeNum", seeNum);
judgeIfUpdate(doc, "blackNum", blackNum);
try {
httpSolrServer(type).add(doc);
httpSolrServer(type).commit();
System.out.println("原子更新成功!");
} catch (SolrServerException e) {
Log4j.Log4JOutError(e);
System.out.println("原子更失敗!");
} catch (IOException e) {
Log4j.Log4JOutError(e);
System.out.println("原子更失敗!");
}
}
/**
* 判断在solr中改索引是否需要更新
* @param doc
* @param value 索引的名称
* @param changeNum 索引的值 如果为-1 则表示不更新
* @author Alan 2017-3-6上午11:34:22
*/
public void judgeIfUpdate(SolrInputDocument doc,String value,int changeNum){
if(changeNum!=-1){
Map<String,Object> map=new HashMap<String, Object>();
map.put("set",changeNum);
doc.addField(value, map);
}
}