话不多说,直接上代码块。…
@Value("${spring.data.solr.host}")
private String dataSolr;
private static String dataBaseSolr;
/**
* 手动更新增量或者全量操作操作
*
* @param delta
*/
public static void deltaQuery(String collection, Boolean delta) {
String deltaStr = delta ? "全量" : "增量";
try {
log.debug(collection+"开始执行"+deltaStr+"操作");
SolrQuery query = new SolrQuery();
query.setRequestHandler("/dataimport");
String command = delta ? "full-import" : "delta-import";
String clean = delta ? "true" : "false";
String optimize = delta ? "true" : "false";
query.setParam("command", command)
.setParam("clean", clean)
.setParam("commit", "true")
.setParam("optimize", optimize)
.setParam("entity", collection.substring(8));
SolrClient client = createSolrServer(dataBaseSolr + collection);
client.query(query);
client.commit();
log.debug(collection+"执行"+deltaStr+"操作成功");
} catch (Exception e) {
log.error("执行" + deltaStr + "操作出现系统异常:", e);
}
}
/**
* 手动创建Solr服务
* @param baseSolrUrl
*/
private static HttpSolrClient createSolrServer(String baseSolrUrl) {
HttpSolrClient solr = new HttpSolrClient.Builder(baseSolrUrl).withConnectionTimeout(10000).withSocketTimeout(60000).build();
return solr;
}
@PostConstruct
public void init() {
solrClient = this.client;
dataBaseSolr = this.dataSolr;
}