solr入門案例web
solr是apache下的一個全文檢索引擎系統. 咱們須要在服務器上單獨去部署solr, 經過它的客戶端工具包solrJ, 就是一個
jar包, 集成到咱們項目中來調用服務器中的solr.
solr底層使用lucene開發apache
部署步驟:
1. 準備一個乾淨的Tomcat, 沒有任何項目均可以運行的.
2. 將solr/example/webapps/solr.war複製到Tomcat/webapps/目錄下
3. 運行Tomcat,運行日誌會報錯, 沒關係, 目的是對solr.war解壓
4. 關閉Tomcat並刪除Tomcat/wabapps下的solr.war
5. 將solr/example/lib/ext下的全部jar包複製到tomcat/webapps/solr/WEB-INF/lib文件夾下
6. 複製solr/example/solr文件夾到硬盤根目錄並更名爲solrhome(solrhome: 就是solr的家, 一個solr服務器只能有一個solrhome, 一個solrhome中能夠都多個solrcore, 一個solrcore就是一個
solr實例.實例和實例之間是互相隔離的.)
7. 將solrhome的位置複製到Tomcat/webapps/solr/WEB-INf/web.xml中
8. 啓動Tomcat, 訪問http://localhost:8080/solr看到solr頁面後說明部署成功tomcat
開發入門程序:服務器
依賴包:Solr服務的依賴包,\solr\example\lib\ext ;solrj依賴包,\solr-4.10.3\dist\solrj-lib;junitapp
一、 建立HttpSolrServer對象,經過它和Solr服務器創建鏈接。webapp
二、 建立SolrInputDocument對象,而後經過它來添加域。工具
三、 經過HttpSolrServer對象將SolrInputDocument添加到索引庫。spa
四、 提交。日誌
代碼實現:xml
public class TestIndexManager {
@Test
public void testIndexCreat throws Exception, IOException {
HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
// 建立文檔對象
SolrInputDocument solrDocument = new SolrInputDocument();
solrDocument.addField("id", "001");
solrDocument.addField("title", "xxx");
solrServer.add(solrDocument);
solrServer.commit();
}
}
修改:
@Test
public void testUpdate() throws Exception, IOException{
HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr");
SolrInputDocument solrInputDocument = new SolrInputDocument();
solrInputDocument.addField("id", "001");
solrInputDocument.addField("title", "yyy");
httpSolrServer.add(solrInputDocument);
httpSolrServer.commit();
}
刪除:
@Test
public void testDelect() throws Exception, IOException{
HttpSolrServer solrServer = new HttpSolrServer("http://localhost:8080/solr");
solrServer.deleteByQuery("id:001");
solrServer.commit();
}
查詢:
@Test public void testSelect() throws Exception{ HttpSolrServer httpSolrServer = new HttpSolrServer("http://localhost:8080/solr"); SolrQuery solrQuery = new SolrQuery(); solrQuery.setQuery("*:*"); QueryResponse query = httpSolrServer.query(solrQuery); SolrDocumentList results = query.getResults(); for (SolrDocument solrDocument : results) { System.out.println(solrDocument.get("id")); System.out.println(solrDocument.get("title")); } }