1. 程式人生 > >Solr技術分析和運用(一)搭建solr環境

Solr技術分析和運用(一)搭建solr環境

1.1 solr 簡介

    1.1.1 官網介紹

Solr是一個基於LuceneJava搜尋引擎伺服器。Solr 提供了層面搜尋、命中醒目顯示並且支援多種輸出格式(包括 XML/XSLT  JSON 格式)。它易於安裝和配置,而且附帶了一個基於 HTTP 的管理介面。Solr已經在眾多大型的網站中使用,較為成熟和穩定。Solr 包裝並擴充套件了 Lucene,所以Solr的基本上沿用了Lucene的相關術語。更重要的是,Solr 建立的索引與Lucene 搜尋引擎庫完全相容。通過對 Solr 進行適當的配置,某些情況下可能需要進行編碼,Solr 可以閱讀和使用構建到其他 Lucene 應用程式中的索引。此外,很多

 Lucene 工具(如 Nutch Luke)也可以使用 Solr 建立的索引。總結一下solr是一個java搜尋引擎伺服器(是一套war程式),內部集成了Lucene(apache提供的一些對搜尋引擎做支援的jar)

1.2.2 solr 功能

  • 儲存資料 
  • 建立索引,維護索引 
  • 資料檢索(全文搜尋,高亮顯示,精確搜尋等) 

1.2.3 solr 依賴環境

Ø Jdk  1.7+

Ø TOMCAT 7+

Ø solr 4.9.1 (選用較為穩定的版本)

1.2 solr 伺服器搭建

1.2.1 初始配置 solr 截止到文件編寫前,solr目前的最新版本為7.3.0,我選用的solr是目前比較成

熟穩定的版本

solr 4.9.1

1. 官網下載solr4.9.1的程式安裝包。

下載地址:點選下載點選開啟連結


如下圖所示,下載我們所需要的zip包


2.解壓solrzip包,目錄如下


3.dist資料夾下的solr-4.9.1.war檔案複製到tomcatwebapps目錄下,並將檔案命名為solr.war 



4.複製 solr解壓包下example\lib\ext 下所有的jar tomcat lib目錄下



5. 在計算機本地(在D盤F盤任意碟符下面都可以)新建一個資料夾solr_home(當然你可以隨便起名字), 然後複製

solr-4.9.1\example\solr 下的所有檔案到 solr_home資料夾



6.啟動tomcat,待tomcat啟動成功後,關閉tomcat。開啟tomcatwebapps目錄。注意,此時solrwar包以及被解壓成solr資料夾。刪除tomcat webapps目錄下的solrwar包,保留solr資料夾。

7.修改配置檔案 apache-tomcat-8.0.50\webapps\solr\WEB-INF\web.xml 

<env-entry> 
    <env-entry-name>solr/home</env-entry-name>  
    <env-entry-value> F:/solr_home</env-entry-value> 
    <env-entry-type>java.lang.String</env-entry-type> 
</env-entry>

8.訪問solr(http://localhost:埠號/solr/),如出現以下介面則solr部署成功。(埠號是寫tomcat的埠號)


1.2.2 新建資料配置core

1.新建core(solr中把配置的每一個模組都叫core),在solr_home目錄下,拷貝collection1資料夾,並起名為test。開啟test資料夾,修改core.properties檔案,將name修改為test 


1.重新啟動tomcat,並訪問solr,如出現以下介面,則表示新建test core成功。


1.2.3 新增資料庫配置

到目前為止,我們已經完成了solr的基礎配置,並且建立了test core,接下來我們需要把資料的資料和搜尋引擎連線起來,讓搜尋引擎可以讀取資料庫的資料。

1. 拷貝資料庫連線jar包(mysql-connector-java-5.1.18.jar)到tomcat的webapps的solr的WEB-INF的lib目錄


2. 以建立test core的方式新建hotel core

3. 開啟hotel的conf資料夾中的solrconfig.xml檔案,在requestHandler name="/select" class="solr.SearchHandler">前面上加上一個處理dataimport的Handler 


4. 在hotel的conf資料夾下並新建data-config.xml檔案配置如下:
表示從資料庫中查詢資料放到solr容器中
<?xml version="1.0" encoding="UTF-8"?> 
<dataConfig> 
<dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://127.0.0.1:3306/itripdb" user="root" password="root" /> 
    <document name="hotel_doc"> 
    <entity name="hotel" pk="id"  query=" select id,hotelName,address from itrip_hotel"> 
    <field column="id" name="id"/> 
    <field column="hotelName" name="hotelName"/> 
    <field column="address" name="address"/> 
    </entity> 
    </document> 
</dataConfig> 

Ø dataSource是資料庫資料來源。 

Ø Entity就是一張表對應的實體,pk是主鍵,query是查詢語句。

Ø Field對應一個欄位,column是資料庫裡的column名,後面的name屬性對應著Solr的Filed 的名字。 

5. 開啟hotel的conf目錄下的schema.xml檔案,修改這個檔案(schema.xml 是solr對資料庫裡的資料進行索引管理和資料欄位展示管理的配置檔案)

  (1)先把我們要保留的的東西找出來,把要保留的東西的放到最上面,刪掉一些不必要的註釋,這樣看起來清爽一點,

下圖的三個東西是我們需要保留的,除這三個之外,還要保留fieldType標籤後面所有的東西,其它的就全部刪掉。


  (2) 新增索引欄位:這裡每個field的name屬性值要和我們上面配置data-config.xml裡的entity的field的name一樣, 對應。

<field name="id" type="string" indexed="true" stored="true"/> 
<field name="hotelName" type="string" indexed="true" stored="true"/> 
<field name="address" type="string" indexed="true" stored="true"/> 

6. 將匯入資料的JAR包拷貝到webapps/solr的lib目錄下 

7.啟動Tomcat,執行資料匯入


8. 查詢資料


到目前為止,我們已經將資料庫的資料匯入到solr當中了,並且已經查詢成功。 

相關推薦

Solr技術分析運用搭建solr環境

1.1 solr 簡介    1.1.1 官網介紹Solr是一個基於Lucene的Java搜尋引擎伺服器。Solr 提供了層面搜尋、命中醒目顯示並且支援多種輸出格式(包括 XML/XSLT 和 JSON

B2C電子商務系統研發——商品SKU分析設計

一、SKU及相關概念定義 在設計商品SKU之前,首先讓我們熟悉一下SKU和相關的一些概念。# 什麼是SKU:      SKU=Stock Keeping Unit(庫存量單位)      同一型號的商品,或者說是同一個產品專案(商品條形碼是針對企業的產品 專案來進

關於一些初級ACM競賽題目的分析題解

      關於一些初級ACM競賽題目的分析和題解(一)   故事發生在在2017年年底,受我的室友cy1999巨巨的影響下,第一次接觸到ACM競賽,也是作為一名程式設計小白,第一次感受到程式語言的

Kotlin在Android studio上的環境配置運用

前倆天Google的IO大會把Kotlin列為Android的開發語言之一,Android開發者有必要學習一下。 Kotlin是基於JVM的程式語言, 由JetBrains公司開發, 目前已經開源. IntelliJ IDEA, PyCharm, Andro

虛擬機器安裝Oracle WebCenter Sites 12c 搭建安裝環境,安裝虛擬機器

       因為工作原因需要我在虛擬機器上安裝 Oracle Webcenter 12C ,百度上找了很多資料,自己第一次研究安裝,安裝過程中有很多麻煩,為了防止自己以後忘記,也能為了幫助別人,特意記錄下來,希望能有所幫助,記得點贊。 安裝 Oracle

xlwings文件學習--搭建開發環境

0.開發環境Anaconda3-5.1.0-Windows-x86_64pycharm 2018.1.31.建立專案開啟pycharm,file→new project如下圖操作①選擇scientific專案型別②在location處為專案修改名字為xlwing點選creat

vue2.0學習筆記搭建學習環境

1.0 環境 doc html 指定 har 表達 follow html元素 搭建一個學習的環境,盡量減少高階知識幹擾再一個HTML界面中引入cdn庫,比如: 代碼:`<!DOCTYPE html><html><head><met

Resiprocate筆記——搭建測試環境

故事不多,知道後不過幾句話。一個開始…… 相關文件 主站:http://www.resiprocate.org 原始碼包相應專案目錄和DOC目錄。 獲取Resiprocate 通過Subversion客戶端Tortoise SVN獲取,命令列輸入如下命令:svn chec

Solr6.2.1 學習筆記搭建執行環境(兩種方式)

1.準備工作 Java JDK8 下載並安裝jdk1.8(solr6.*是基於JDK1.8開發的) tomcat8.0 下載並解壓tomcat8 2.在jetty伺服器下執行 solr解壓之後目錄結構如下: solr5之後釋出版本自帶jetty

BLE開發 Nordic nRF52832 開發 搭建開發環境

BLE開發 Nordic nRF52832(一) 搭建開發環境 nRF52832 是Nordic出的最新款超低功耗soc,是上代晶片nRF51822的升級版。晶片整合2.4GHz發射器和一顆32位 ARM Cortex M4F CPU,以及512KB rom+

Vue.js 2.0 入門教程 搭建開發環境

最近,前段開發框架層出不窮,響應式和模組化開發框架一下變得炙手可熱起來。在這樣的大浪潮下,我也開始進入vue的學習行列中。 這裡有觀眾會問,為什麼選擇vue呢?  小編作為一個剛入門前端的小白,vue 相比於angular2 ,react,入門簡單容易上手,簡單也是效

Flutter學習——搭建開發環境Windows

久聞 Flutter 大名,今天終於有時間體驗一下了 ٩(๑>◡<๑)۶  官網:https://flutter.dev/ 中文官網:https://flutterchina.club/ 一、下載Flutter SDK 1、下載 ①官網下載:https://flutt

《軟件測試方法技術》-讀書筆記

圖片 軟件工程 AI 開發 支持 ont 3年 發的 一次 軟件測試正反兩方面的爭辯 軟件測試領域先驅 Bill Hetzel 博士 1993年在美國的北卡羅來納大學組織了歷史上第一次正式的關於軟件測試的會議。從此以後,軟件測試開始頻繁出現在軟件工程的研究和實踐中,也可以認

演算法分析初步-最大連續問題

程式設計者都希望自己的演算法高效,但演算法在寫成程式之前是執行不了的,難道每設計出一個演算法都必須寫出程式才能知道快不快嗎?答案是否定的。本節介紹演算法分析的基本概念和方法,力求在程式設計之前儘量準確地估計程式的時空開銷,並作出決策-例如,如果演算法又複雜速度又慢,就不要急著寫出來了。 給出

最全的區塊鏈技術分析總結附知識圖譜

區塊鏈是與當下與VR虛擬現實等比肩的熱門技術之一。區塊鏈是加密貨幣背後的技術,與基礎語言或平臺等差別較大,它本身不是新技術,類似Ajax,可以說它是一種技術架構,所以我們從架構設計的角度談談區塊鏈的技術實現。 無論你擅長什麼程式語言,都能夠參考這種設計去實現一款區塊鏈產品。

EMV技術學習研究終端行為分析

轉載請註明出處 作者:小旭 這一塊的內容,我覺得文件上講的比較清晰,而且舉例也很好,所以大部分都是拷貝文件的內容過來,一邊看一邊分析文件的含義。 這一部分用到2類比較重要的資料,分別是 髮卡行行為程式碼(IAC ) 髮卡行行為程式碼,來自讀記錄檔案卡片返回 髮卡行行為程式碼

soap訊息分析soap訊息的傳遞處理

WebService傳遞的時候實際上是傳遞一個SOAPMessage,我們來探究一下SOAPMessage的組成。 SOAPMessage由一個個的SOAP塊組成,這些SOAPPart被封裝到一個SOAPEnvelope(信封)中,信封中包括head和body。我們可以自

地址映象變換之主存虛存

規則 根據 pan 命中率 實現 -s tro 分享 使用 地址映象:是將每一個虛存單元按某種規則裝入實存,即建立多用戶虛地址與實存地址之間的相應關系。 地址變換:是程序依照這樣的映象關系裝入實存後。在運行時,多用戶虛地址怎樣變換成相應的實存地址。 頁面爭用(實頁沖突

基於rhel7.2的Zabbix平臺搭建部署

linux 監控軟件 zabbix nginx mysql php lnmp基於rhel7.2的zabbix平臺搭建和部署(一)一、實驗環境:(1)虛擬機:rhel7.2 x86_64(2)數據庫:mysql5.7.13(3)nginx1.10.2(4)PHP5.6.27(5)zabbix二、安裝編譯工具及

修飾符關鍵字繼承

ati 構造 pub 常用 另一個 修飾 tro pri 修飾符 一、靜態修飾符----static   static可以修飾內部類、塊、屬性、方法,經static修飾過的元素儲存地址唯一,不會改變 1 public class Test{ 2 static