1. 程式人生 > >solr 的安裝配置

solr 的安裝配置

Solr簡介

Solr是採用Java開發,基於Lucene的全文檢索伺服器,同時對其進行了擴充套件,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件並對查詢效能進行了優化,並且提供了一個完善的功能管理介面,是一款非常優秀的全文搜尋引擎。 Solr是一個獨立的企業級搜尋應用伺服器,它對外提供類似於Web-Service的API介面,使用者可以通過http請求,向搜尋引擎伺服器提交一定格式的XML檔案,生成索引,也可以通過Http G Solret操作提出查詢請求,並得到XML格式的返回結果。

Solr與Lucene的關係

Lucene是一套資訊檢索工具包,但是並不包含搜尋引擎系統
,它包含了索引結構、讀寫索引工具、相關性工具、排序等功能,因此在使用Lucene時仍需要關注搜尋引擎系統,例如資料獲取、解析、分詞方面的東西。
solr是基於Lucene開發的,Solr主要是為了打造一款企業級的搜尋引擎系統,因此它更接近於常用的搜尋引擎系統(百度、搜狗),它是一個搜尋引擎服務,通過各種API可以讓我們的應用使用搜索服務,而不需要將搜尋邏輯耦合在應用中。而且solr可以根據配置檔案定義資料解析的方式,更像是一個搜尋框架,它也支援主從、熱換庫操作,還添加了高亮、facet等搜尋引擎常見的功能支援。 Nutch是一款開源的Java實現的搜尋引擎,它提供了我們執行自己的搜尋引擎所需的全部工具。包括全文檢索和web爬蟲
。常用來使用Nutch做爬蟲。

Solr的簡單搭建執行

下載解壓後的目錄:
配置步驟: 1.解壓solr-4.7.0.zip到你想到存放的路徑,比如當前使用者根目錄/Users/liuxun/solr-4.7.0
2.cmd開啟命令列視窗,進入/Users/liuxun/solr-4.7.0/example目錄
3.執行命令:java -jar start.jar
4.通過第三步以後,系統會啟動solr自帶的jetty伺服器,通過    http://localhost:8983/solr/便可訪問solr。
此時,solr已成功啟動

操作介面說明:



等等還有查詢 介面使用並不麻煩

命令測試管理索引

(一) 建立索引 此時solr已安裝並啟動,但是還沒有索引,只有建立好索引,搜尋才能有結果
1、命令進入/solr-4.6.0/example/exampledocs目錄
2、執行命令:java -jar post.jar solr.xml monitor.xml,此時你已成功提交了2個solr文件
3、執行完第二步後,我們可以通過瀏覽器訪問:http://localhost:8983/solr/collection1/select?q=solr&wt=xml
如果你想匯入更多的文件,執行命令:java -jar post.jar *.xml
(二)更新索引 當重複執行命令:java -jar post.jar *.xml後,發現搜尋的結果沒有出現重複的資料,原因:example目錄下的schema.xml中指定了列id為uniqueKey(即:唯一),所以重複提交資料到索引庫時,id相同的資料會替換原來document中的資料。
如果想要得到重複的資料,可以通過修改exampledocs目錄下*.xml中id值的方式實現
(三)刪除索引 1、執行命 令:
java -Ddata=args -Dcommit=false -jar post.jar “<delete><id>SP2514N</id></delete>”,可以刪除id為 SP2514N的document
2、執行第一步後,再去搜索發現搜尋結果中還有id為SP2514N的資料,其實不是第一步沒有刪除成功,因為第一步的命令中-Dcommit=false,所以第一步的刪除操作沒有提交到索引(index)中。
3、在沒有開啟新的searcher之前,第一步刪除資料會一直存在於搜尋結果中,所以我們可以強制開啟一個新的searcher,執行命令:java -jar post.jar -
(四)查詢索引 solr通過http以get的方式進行搜尋資料,如:http://localhost:8983/solr/collection1/select?q=solr&wt=xml
q:查詢的關鍵詞(此時查詢的欄位是solrconfig.xml中指定的預設查詢欄位<str name=”df”>text</str>)
fl:搜尋結果返回的欄位
sort:排序
wt:搜尋結果返回格式
q=video&fl=name,id (return only name and id fields) 
q=video&fl=name,id,score (return relevancy score as well) 
q=video&fl=*,score (return all stored fields, as well as relevancy score) 
q=video&sort=price desc&fl=name,id,price (add sort specification: sort by price descending) 
q=video&wt=json (return response in JSON format) 

使用SolrJ與Solr伺服器互動


我們要使用Solr服務,可以直接使用urlconnecion按照規則去呼叫Solr服務的介面,如果是web應用除了可以使用URLConnection在後臺呼叫外還可以使用AJAX技術(XmlHttpRequest)呼叫,但是需要自己封裝資料,解析資料,非常麻煩。 SolrJ提供了針對各種客戶端的API,可以省去這些繁瑣的步驟,面向API程式設計 直接與Solr伺服器進行互動。

SolrJ的簡介和使用:

solrj是solr的java客戶端,用於訪問solr索引庫。
它提供了新增、刪除、查詢、優化等功能。 
Jar 包位置
解壓目錄:
它是整合到solr壓縮包裡的,解壓檔案後,有個目錄/dist/,裡面就存放了solrj所用到的jar(/dist/solrj-lib/*.jar/dist/*.jar),把這些所有的jar都新增到專案中的classpath就可以直接開發了。 Product.java
  1. publicclass Product {  
  2.     //Field中的value要遵循核心中schema中<fields>的規則
  3.     @Field(value="id")  
  4.     private String id;  
  5.     @Field(value="name")  
  6.     private String name;  
  7.     @Field(value="description")  
  8.     private String desc;  
  9.     @Field(value="price")  
  10.     privatefloat price;  
  11.        // setter  getter
  12.        // ......
  13. }  
@Field 表示 當前屬性與索引庫中哪個已經宣告的欄位名相對應  (具體規則由schema指定) SolrDao.java (索引的增刪改查)
  1. package liuxun.solrj.dao;  
  2. import java.io.IOException;  
  3. import java.util.List;  
  4. import java.util.Map;  
  5. import org.apache.solr.client.solrj.SolrQuery;  
  6. import org.apache.solr.client.solrj.SolrServer;  
  7. import org.apache.solr.client.solrj.SolrServerException;  
  8. import org.apache.solr.client.solrj.impl.HttpSolrServer;  
  9. import org.apache.solr.client.solrj.response.QueryResponse;  
  10. import org.apache.solr.common.SolrDocument;  
  11. import org.apache.solr.common.SolrDocumentList;  
  12. import org.apache.solr.common.SolrInputDocument;  
  13. import liuxun.solrj.bean.Product;  
  14. /** 
  15.  * 使用solrJ 向solr 提交請求,增刪改查, solrJ 底層頁是傳送http 協議... 
  16.  *  
  17.  * @author liuxun 
  18.  */
  19. publicclass SolrDao {  
  20.     // 在solr 當中有一些預設的欄位和動態欄位規則,配置在檔案/example/solr/collection1/conf/schema.xml
  21.     // 新增預設索引屬性
  22.     publicvoid addDefaultField() throws SolrServerException, IOException {  
  23.         // 宣告要連線solr伺服器的地址
  24.         String url = "http://localhost:8983/solr";  
  25.         SolrServer solr = new HttpSolrServer(url);  
  26.         SolrInputDocument doc = new SolrInputDocument();  
  27.         doc.addField("id""預設情況下必須新增的欄位,用來區分文件的唯一標識");  
  28.         doc.addField("name""預設的名稱屬性欄位");  
  29.         doc.addField("description""預設的表示描述資訊的欄位");  
  30.         solr.add(doc);  
  31.         solr.commit();  
  32.     }  
  33.     // 新增動態索引屬性
  34.     publicvoid addDynamicField() throws SolrServerException, IOException {  
  35.         // 宣告要連線solr伺服器的地址
  36.         String url = "http://localhost:8983/solr";  
  37.         SolrServer solr = new HttpSolrServer(url);  
  38.         SolrInputDocument doc = new SolrInputDocument();  
  39.         doc.addField("id""adwweqwewe");  
  40.         doc.addField("nam_s""動態欄位的StringField型別格式為*_s");  
  41.         doc.addField("desc_s""動態欄位的TextField型別格式為*_t");  
  42.         solr.add(doc);  
  43.         solr.commit();  
  44.     }  
  45.     // 新增索引
  46.     publicvoid addIndex(Product product) throws SolrServerException, IOException {  
  47.         // 宣告要連線solr伺服器的地址
  48.         String url = "http://localhost:8983/solr";  
  49.         SolrServer solr = new HttpSolrServer(url);  
  50.         solr.addBean(product);  
  51.         solr.commit();  
  52.     }  
  53.     // 更新索引
  54.     publicvoid updateIndex(Product product) throws IOException, SolrServerException {  
  55.         // 宣告要連線solr伺服器的地址
  56.         String url = "http://localhost:8983/solr";  
  57.         SolrServer solr = new HttpSolrServer(url);  
  58.         solr.addBean(product);  
  59.         solr.commit();  
  60.     }  
  61.     // 刪除索引
  62.     publicvoid delIndex(String id) throws SolrServerException, IOException {  
  63.         // 宣告要連線solr伺服器的地址
  64.         String url = "http://localhost:8983/solr";  
  65.         SolrServer solr = new HttpSolrServer(url);  
  66.         solr.deleteById(id);  
  67.         // solr.deleteByQuery("id:*");
  68.         solr.commit();  
  69.     }  
  70.     // 查詢索引
  71.     publicvoid findIndex() throws SolrServerException {  
  72.         // 宣告要連線solr伺服器的地址
  73.         String url = 

    相關推薦

    solr安裝配置拼音分詞器

    1.準備jar包 將ik的jar包、pinyin4j-2.5.0​.jar、solr-4.9.0\contrib\analysis-extras\lucene-libs\lucene-analyzers-smartcn-4.9.0.jar拷貝到%TOMCAT_HOME%\w

    Solr安裝配置

    1 概述 . Apache Solr是一個功能強大的搜尋伺服器,它支援REST風格API。Solr是基於Lucene的,Lucene 支援強大的匹配能力,如短語,萬用字元,連線,分組和更多不同的資料型別。它使用 Apache Zookeeper特別針

    solr安裝配置與helloworld

    配置中文 啟動tomcat com war包 執行 package .text 文件 rdo 一、安裝solr 1.安裝jdk環境和tomcat 2.解壓solr壓縮包,這裏我解壓到opt目錄下 3.把/usr/local/solr-4.8.0/dist/solr-4.8.

    Solr - 無*.war版solr安裝配置

    新建 9.png quick none sources res .com eight spl 1.將 solr 壓縮包中*\server\solr-webapp\文件夾下有個webapp文件夾,將之復制到Tomcat\webapps\目錄下,並改成solr (名字隨意,通過

    (一)Solr——簡介和安裝配置

    str 服務 開源項目 一個 war prop post 沒有 系統安裝 1. solr簡介 1.1 Solr是什麽 Solr是apache的頂級開源項目,它是使用java開發 ,基於lucene的全文檢索服務器。 Solr和lucene的版本是同步更新的,最新的版本

    solr-伺服器安裝配置

    一:安裝solr伺服器 1.匯入安裝包到 /usr/local/solr/singleSolr目錄下 解壓移動到tomcat-solr目錄 2.拷貝war到tomcat/webapps cp solr-4.10.3/example/webapps/solr.war tomcat-sol

    solr的基礎安裝配置和使用以及solrj的簡介

    Solr 全文檢索伺服器 1 前言 今天博主將會從solr的簡單介紹,與lucene的區別開始為大家講解,圍繞solr的安裝配置,基本使用進行講解以及後面會涉及solrJ的使用! 如果對大家有用的話,可以關注,點贊文章以及歡迎評論喔~ 2 Solr介紹 2.1

    Solr安裝及中文分詞器配置

    1、上傳並解壓Solr、Tomcat 2、複製Solr到Tomcat cp -r solr-7.3.1/server/solr-webapp/webapp /home/tomcat/webapps/solr 3、複製jar包到Tomcat下的Solr cp -

    solr安裝到Linux及其ik分詞器配置(傻瓜操作複製貼上)

    為避免安裝程式之間的互相錯亂,新建了一個目錄,並在其目錄下進行solr的安裝,下面的操作都是在該目錄下進行命令操作的。建立目錄命令:mkdir 目錄名1.匯入solr和tomcat的壓縮包到Linux伺服器中,並解壓解壓命令:tar -zxvf 要解壓的壓縮包名2.開啟sol

    Solr 安裝配置

    什麼是solr Solr 是Apache下的一個頂級開源專案,採用Java開發,它是基於Lucene的全文搜尋伺服器。Solr提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件,並

    solr安裝配置

    Solr簡介 Solr是採用Java開發,基於Lucene的全文檢索伺服器,同時對其進行了擴充套件,提供了比Lucene更為豐富的查詢語言,同時實現了可配置、可擴充套件並對查詢效能進行了優化,並且提供了一個完善的功能管理介面,是一款非常優秀的全文搜尋引擎。 Solr是一個獨立的企業級搜尋應用伺服器,它

    solr與中文分詞器的安裝配置

    準備環境: solr版本:Solr4.10.3 jdk:1.8 Tomcat:apache-tomcat-7.0.59 一、solr和tomcat整合使用: 1.solr和tomcat整合 1、將Solr4.10.3 壓縮包內的dist目錄下的solr-4.10.3.w

    Windows下安裝配置Solr (tomcat7.0)

    下面介紹Windows下安裝配置Solr,與在Linux下類似。 1. 安裝準備 1.1. 下載tomcat 7 我是下綠色版,即zip的,x64位(因伺服器是x64) apache-tomcat-7.0.32-windows-x64.zip 1.2. 安裝tom

    Linux - vim安裝 配置與使用

    格式 only ctx net height border term mona 方便 一 Vim 簡單介紹 曾經一直用vi,近期開始使用 vim,以下將兩者做一下比較。 vi和vim都是多模式編輯器,不同的是vim 是vi的升級版本號,它不僅兼容vi的全部指令,並且

    Tomcat8.5的安裝配置

    tomcat安裝配置1. 安裝JDKJDK官網地址:http://www.oracle.com/technetwork/java/javase/downloads/index.html點擊"JDK DOWNLOAD"進入下載頁面下載JDK軟件包,註意需選中"Accept License Agreement"才

    tomcat免安裝配置

    base ice install file log 安裝配置 image images nbsp 1、首先設置環境變量CATALINA_BASE、CATALINA_HOME: 2、設置好環境變量後,打開bin目錄下的startup.jar,[email pro

    CentOS6上新增硬盤並安裝配置grub文件

    centos6上新增硬盤並安裝配置grub文件實例:為運行於虛擬機上的CentOS 6添加一塊新硬件,提供兩個主分區;(1) 為硬盤新建兩個主分區;並為其安裝grub; (2) 為硬盤的第一個主分區提供內核和ramdisk文件; 為第二個分區提供rootfs; (3) 為rootfs提供bash、ls、cat

    天兔(Lepus)監控操作系統(OS)安裝配置

    pid install style 主機 share net-snmp weight ecn 安裝 http://suifu.blog.51cto.com/9167728/1770703 監控和被監控端都要安裝和配置snmp: [[email protecte

    天兔(Lepus)監控系統慢查詢分析平臺安裝配置

    fig align fxaa comm one 平臺 back ria pri 轉http://suifu.blog.51cto.com/9167728/1770672 被監控端要安裝pt工具 1 2 3 4 [[email protec

    Redis3.2.8集群安裝配置

    redis3.2.8集群安裝配置具體就不做介紹了,直接開始安裝準備環境:使用2臺centos服務器,每臺機器上部署3個實例,集群為三個主節點與三個從節點: 第一臺 192.168.1.107:7000 192.168.1.107:7001 192.168.1.107:7002 第二臺 192.168.