一、簡介: solrJ是通路solr服務的java用戶端,提供索引和上搜尋的請求方法,solrJ通常嵌入在業務系統中,通過solrJ的API接口操作solr服務
二、jar包
<!-- solr用戶端 -->
<dependency>
<groupId>org.apache.solr</groupId>
<artifactId>solr-solrj</artifactId>
<version>4.10.3</version>
</dependency>
三、添加資料:
@Test
public void addSolr() throws SolrServerException, IOException {
//建立一個SolrServer對象,建立一個連接配接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//建立一個文檔對象SolrInputDocument
SolrInputDocument document = new SolrInputDocument();
//向文檔對象中添加域,文檔中必須包含一個id域,所有的域的名稱必須在schema.xml中定義
document.addField("id", 1);
document.addField("item_title", "我是中國人");
document.addField("item_desc", "中華人民共和國萬歲!");
//把文檔寫入索引庫
solrServer.add(document);
//送出
solrServer.commit();
}
四、更新資料: 更新就是添加,隻要id一緻資料不同,就是更新。 系統原理:庫會先根據id将資料删除,再添加新的資料
五、查詢資料:
@Test
public void searchSolr() throws SolrServerException {
//建立一個SolrServer對象,建立一個連接配接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//建立一個SolrQuery對象
SolrQuery query = new SolrQuery();
//設定查詢條件
query.setQuery("*:*");
/*
query.setStart(0); //設定分頁:起始頁
query.setRows(10); //設定分頁:頁面大小
query.set("df", "item_title"); //設定預設搜尋域,若不指定預設搜尋域,預設從text中找
query.setHighlight(true); //開啟高亮
query.addHighlightField("item_title"); //設定高亮的域
query.setHighlightSimplePre("<em>"); //設定高亮的字首
query.setHighlightSimplePost("</em>"); //設定高亮的字尾
*/
//執行查詢
QueryResponse queryResponse = solrServer.query(query);
//取文檔清單,取查詢結果總記錄數
SolrDocumentList results = queryResponse.getResults();
System.out.println("總記錄數:"+results.getNumFound());
//周遊文檔清單,從中取出域的内容
for (SolrDocument solrDocument : results) {
System.out.println(solrDocument.get("item_title"));
}
}
六、删除資料:
@Test
public void deleteSolr() throws SolrServerException, IOException {
//建立一個SolrServer對象,建立一個連接配接
SolrServer solrServer = new HttpSolrServer("http://192.168.25.131:8080/solr");
//删除
solrServer.deleteById("1");
//送出
solrServer.commit();
}