java 连接 solr
solr 的客户端编码与lucene十分相似,不多说直接上代码。
添加maven 依赖
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>7.3.0</version>
</dependency>
查询:
private static String zkServerUrl = "192.168.154.138:9983";
public static SolrClient getCloudSolrClient() {
List<String> zkHosts = new ArrayList<String>();
zkHosts.add(zkServerUrl);
Optional<String> zkChroot = Optional.empty();
return new CloudSolrClient.Builder(zkHosts, zkChroot).build();
}
public static void main(String[] args) throws Exception {
SolrClient client = SolrJClientSearchDemo.getCloudSolrClient();
Map<String, String> queryParamMap = new HashMap<String, String>();
queryParamMap.put("q", "*:*");
queryParamMap.put("fl", "id, name");
queryParamMap.put("sort", "id asc");
MapSolrParams queryParams = new MapSolrParams(queryParamMap);
final QueryResponse response = client.query("ChiyfTest", queryParams);
final SolrDocumentList documents = response.getResults();
System.out.println("Found " + documents.getNumFound() + " documents");
for (SolrDocument document : documents) {
final String id = (String) document.getFirstValue("id");
final String name = (String) document.getFirstValue("name");
System.out.println("id: " + id + "; name: " + name);
client.close();
}
}
插入:
private static String zkServerUrl = "192.168.154.138:9983";
public static SolrClient getCloudSolrClient() {
List<String> zkHosts = new ArrayList<String>();
zkHosts.add(zkServerUrl);
Optional<String> zkChroot = Optional.empty();
return new CloudSolrClient.Builder(zkHosts, zkChroot).build();
}
public static void main(String[] args) throws Exception {
SolrClient client = SolrJClientDemo.getCloudSolrClient();
final SolrInputDocument doc = new SolrInputDocument();
doc.addField("id", UUID.randomUUID().toString());
doc.addField("name", "Amazon Kindle Paperwhite");
final UpdateResponse updateResponse = client.add("techproducts", doc);
// Indexed documents must be committed
client.commit("techproducts");
System.out.println("add doc:" + doc);
System.out.println(updateResponse.getResponseHeader());
System.out.println(updateResponse.getResponse());
client.close();
}