一.下載 solr 5.0 地址:http://archive.apache.org/dist/lucene/solr/5.0.0/solr-5.0.0.zip
二.解壓
三.啓動solr
啓動solr有兩種方式
1.直接啓動solr
windows 打開命令行切換solr-5.0.0\bin 文件夾 執行 solr start 啓動。 (solr stop -all 關閉命令)
linux 系統 直接切換solr-5.0.0\bin 文件夾 執行 solr star
啓動完畢後在地址欄輸入 http://localhost:8983/solr
2.tomcat啓動
1)直接將solr-5.0.0\server\webapps 文件夾下的 solr.war (解壓下面要修改裏面內容)放到tomcat 下
2)將solr-5.0.0\server\lib\ext jar 包複製到WEB-INF lib下面,不然提示缺乏jar 包
3)新建文件夾solrHome 路徑隨便
配置web.xml (WEB-INF目錄)
4)將solr-5.0.0\server\solr文件夾下全部的文件複製到solrHome
5)啓動tomcat http://localhost:8080/solr 這裏的端口是你tomcat 的端口。
四.建立core
文字說明:(若是圖片沒看懂看文字)
將solr-5.0.0\server\solr\configsets\sample_techproducts_configs 的conf 文件夾複製到指定目錄下(這裏面有個schema.xml下文要修改)。java
建立成功後若是仍是顯示如圖(前提是建立成功!)
重啓solr 先
solr stop -all 再 solr start。或重啓tomcat
五.配置字段
schema.xml conf文件夾下配置你的數據字段
node
配置完畢後重啓。linux
六 分詞
注意:配置分詞以前清除以前的數據
配置分詞總的來講:1.導入jar包,2.配置文件。
1.導入jar包
地址:http://download.csdn.net/detail/qq_28601235/9854334
將兩個jar包導入 1)若是你用tomcat啓動直接把jar放到 webapps/sole下
WEB-INF/lib下面,2)若是是直接啓動的solr-5.0.0\server\solr-webapp\webapp\WEB-INF\lib
2.
配置
增長fieldType
web
重啓。
七.java 中調用
1.jar包
還會用到org.slf4j,commons-loggingapache
2.具體代碼
`package com.wm.project.test;windows
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;
import java.util.Map;tomcat
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.SolrServerException;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.SolrInputDocument;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;服務器
public class SolrJTest {
// 指定solr服務器的地址
private final static String SOLR_URL = 「http://localhost:8983/solr/「;app
/** * 往索引庫添加文檔 * * @throws IOException * @throws SolrServerException */ public void addDoc(Map<String, Object> map, String coreName) throws SolrServerException, IOException { // 構造一篇文檔 SolrInputDocument document = new SolrInputDocument(); for (String key : map.keySet()) { // 往doc中添加字段,在客戶端這邊添加的字段必須在服務端中有過定義 document.addField(key, map.get(key)); } // 得到一個solr服務端的請求,去提交 ,選擇具體的某一個solr core HttpSolrClient solr = new HttpSolrClient(SOLR_URL + coreName); solr.add(document); solr.commit(); solr.close(); } /** * 根據id從索引庫刪除文檔 */ public void deleteDocumentById(String id, String coreName) throws Exception { // 選擇具體的某一個solr core HttpSolrClient server = new HttpSolrClient(SOLR_URL + coreName); // 刪除文檔 server.deleteById(id); // 刪除全部的索引 // solr.deleteByQuery("*:*"); // 提交修改 server.commit(); server.close(); } public void deleteAllDocument(String coreName) throws Exception { // 選擇具體的某一個solr core HttpSolrClient server = new HttpSolrClient(SOLR_URL + coreName); // 刪除全部的索引 server.deleteByQuery("*:*"); // 提交修改 server.commit(); server.close(); } public void querySolr(String coreName) throws Exception { HttpSolrClient solrServer = new HttpSolrClient(SOLR_URL + coreName); SolrQuery query = new SolrQuery(); // query.set("q", "*:*");// 參數q 查詢全部 query.set("q", "name:好");// 相關查詢,好比某條數據某個字段含有周、星、馳三個字 將會查詢出來 // ,這個做用適用於聯想查詢 // 參數df,給query設置默認搜索域 // query.set("df", "name"); // 參數sort,設置返回結果的排序規則 query.setSort("id", SolrQuery.ORDER.desc); // 設置分頁參數 query.setStart(0); query.setRows(10);// 每一頁多少值 // 參數hl,設置高亮 query.setHighlight(true); // 設置高亮的字段 query.addHighlightField("name"); // 設置高亮的樣式 query.setHighlightSimplePre("<font color='red'>"); query.setHighlightSimplePost("</font>"); // 獲取查詢結果 QueryResponse response = solrServer.query(query); // 兩種結果獲取:獲得文檔集合或者實體對象 // 查詢獲得文檔的集合 SolrDocumentList solrDocumentList = response.getResults(); System.out.println("經過文檔集合獲取查詢的結果"); System.out.println("查詢結果的總數量:" + solrDocumentList.getNumFound()); // 遍歷列表 for (SolrDocument doc : solrDocumentList) { System.out.println("id:" + doc.get("id") + " name:" + doc.get("name") + " description:" + doc.get("description")); } } public static void main(String[] args) throws Exception { SolrJTest solr = new SolrJTest(); // solr.createSolrServer(); Map<String, Object> map = new HashMap<String, Object>(); map.put("id", 999999999); map.put("name", "好的"); map.put("author", "WM"); // solr.addDoc(map, "new_core"); //solr.deleteAllDocument("new_core"); // solr.querySolr("new_core"); }
}`webapp