1. 程式人生 > >Linux系統下Solr7.0安裝及設定中文分詞和拼音檢索

Linux系統下Solr7.0安裝及設定中文分詞和拼音檢索

一、準備工作

Jdk版本 1.8.0_151

Tomcat版本 apache-tomcat-8.0.50

Solr版本 solr-7.0.0

二、安裝solr

1、安裝jdk不會的參考點選開啟連結

tomcat安裝請自行百度

2、安裝solr

2.1、首先將solr-7.0.0.tgz上傳到伺服器,然後解壓

[[email protected] ~]# tar -zxf solr-7.0.0.tgz

[[email protected] ~]# ll

然後會有一個solr-7.0.0檔案

2.2、在/usr/local新建一個檔案solr tomcat檔案複製到solr檔案下並命名為solrtomcat

[[email protected]

local]# mkdir solr

[[email protected] local]# cp /root/apache-tomcat-8.0.50 /usr/local/solr/solrtomcat -r

2.3進入solr-7.0.0,複製並重命名solr-7.3.0目錄裡的server/solr-webapp/webapp資料夾到solrtomcatwebapps目錄並重命名為solr

[[email protected] solr-7.0.0]# cd server

[[email protected] server]# ll

total 176

drwxr-xr-x 2 root root   4096 Jun 12 03:15 contexts

drwxr-xr-x 2 root root   4096 Jun 12 03:15 etc

drwxr-xr-x 3 root root   4096 Jun 12 03:15 lib

drwxr-xr-x 2 root root   4096 Jun 12 03:15 modules

-rw-r--r-- 1 root root   3977 Sep  8  2017 README.txt

drwxr-xr-x 2 root root   4096 Jun 12 03:15 resources

drwxr-xr-x 3 root root   4096 Sep  8  2017 scripts

drwxr-xr-x 3 root root   4096 Jun 12 03:15 solr

drwxr-xr-x 3 root root   4096 Sep  8  2017 solr-webapp

-rw-r--r-- 1 root root 142488 Oct 28  2016 start.jar

[[email protected] solr-webapp]# cp webapp /usr/local/solr/solrtomcat/webapps/solr -r

[[email protected] solr-webapp]#

2.4將需要的jar包,複製到部署的solrtomcat WEB-INF/lib/

server/lib/ext/下的所有jar複製到/usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib

[[email protected] server]# cd lib/ext/

[[email protected] ext]# ll

total 552

-rw-r--r-- 1 root root  16519 Apr  4  2014 jcl-over-slf4j-1.7.7.jar

-rw-r--r-- 1 root root   4730 Apr  4  2014 jul-to-slf4j-1.7.7.jar

-rw-r--r-- 1 root root 489884 May 26  2012 log4j-1.2.17.jar

-rw-r--r-- 1 root root  29257 Apr  4  2014 slf4j-api-1.7.7.jar

-rw-r--r-- 1 root root   8870 Apr  4  2014 slf4j-log4j12-1.7.7.jar

[[email protected] ext]# cp * /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib

[[email protected] ext]#

 server/lib/metrics* 開頭的5jar複製到 /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib

-rw-r--r-- 1 root root 112565 Oct 28  2016 jetty-webapp-9.3.14.v20161028.jar

-rw-r--r-- 1 root root  50317 Oct 28  2016 jetty-xml-9.3.14.v20161028.jar

-rw-r--r-- 1 root root 129402 Mar 20  2017 metrics-core-3.2.2.jar

-rw-r--r-- 1 root root   9916 Mar 20  2017 metrics-ganglia-3.2.2.jar

-rw-r--r-- 1 root root  22056 Mar 20  2017 metrics-graphite-3.2.2.jar

-rw-r--r-- 1 root root  20053 Mar 20  2017 metrics-jetty9-3.2.2.jar

-rw-r--r-- 1 root root  40188 Mar 20  2017 metrics-jvm-3.2.2.jar

[[email protected] lib]# cp metrics-* /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib

[[email protected] lib]#

2.5複製log4j配置檔案

  server/resources/目錄下的log4j.properties,複製到剛才部署的solrWEB-INF/,要建立一個classes的目錄

[[email protected] server]# cp resources/log4j.properties /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/classes/

[[email protected] server]#

2.6建立solr home

  複製並重命名solr-7.0.0/servier/solr/usr/local/solr/solrhome

[[email protected] resources]# cp ../solr /usr/local/solr/solrhome -r

[[email protected] resources]#

2.7、修改solr 工程下的web.xml 告知solrhome的位置

 

註釋掉最後一句不然會報403錯誤。

 

2.8儲存退出。啟動tomcat

[[email protected] WEB-INF]# cd ../../../

[[email protected] webapps]# cd ../

[[email protected] solrtomcat]# cd bin/

[[email protected] bin]# ./startup.sh

Using CATALINA_BASE:   /usr/local/solr/solrtomcat

Using CATALINA_HOME:   /usr/local/solr/solrtomcat

Using CATALINA_TMPDIR: /usr/local/solr/solrtomcat/temp

Using JRE_HOME:        /usr/java/jdk1.8.0_151

Using CLASSPATH:       /usr/local/solr/solrtomcat/bin/bootstrap.jar:/usr/local/solr/solrtomcat/bin/tomcat-juli.jar

Tomcat started.

[[email protected] bin]#

瀏覽器訪問http://ip:8080/solr/index.html

出現以上介面就說明安裝成功了。

出錯總結

錯誤1、如果出現了404,請檢查URL,如果URL無誤,請檢查jar包是否拷貝全了。

錯誤2、如果報錯找不到主機名,請做如下修改

報錯:java.net.UnknownHostException: 主機名: 主機名

修改/etc/hosts檔案

127.0.0.1 主機名 localhost.localdomain localhost

或是再新增一條

127.0.0.1 主機名

主機名是新加的,原來沒有,儲存,問題解決。

 

錯誤3、若虛擬機器安裝多個tomcat請自行修改埠號,避免保持埠衝突,請檢查防火牆是否關閉,或者被訪問的埠是否放行。方法如下,將你的埠新增進來即可。


然後重啟防火牆配置生效

 

三、配置分詞詞典

3.1、新增庫

 

     name:自定義的名字,建議和instanceDir保持一致

     instanceDirsolrhome目錄下的例項類目

     dataDir:預設填data即可

     config:指定配置檔案,new_core/conf/solrconfig.xml

     schema:指定schema.xml檔案,new_core/conf/schema檔案(實際上是managed-schema檔案)

    注意:紅色框內的內容,instanceDir and dataDir need to exist before you can create the core

    要求在建立solr核心時,instanceDir例項目錄在sold home 中存在

    如果instanceDir例項目錄不存在,點選新增會有如下提示,但會在solr/home中多一個instanceDir例項目錄。

提示顯示缺少solrconfig.xml

1)、將/usr/local/solr/solrhome/configsets/sample_techproducts_configs/conf 拷貝到mycore檔案下

[[email protected] sample_techproducts_configs]# cp conf /usr/local/solr/solrhome/mycore -r

(2)、contrib目錄,dist目錄拷貝到solrhome目錄中

  [[email protected] solr-7.0.0]# cp contrib dist /usr/local/solr/solrhome -r

[[email protected] solr-7.0.0]#

3)、修改mycore/config/solrconfig.xml

  將檔案中<lib dir="${solr.install.dir:../../../..}.." 替換為 <lib dir=“/usr/local/solrhome/…."

 

(4) 、重新整理頁面,新增core出現如下頁面新增成功

 

3.2、手動匯入資料

a、引入相應jar包和ik的配置檔案

-rw-r--r-- 1 root root      41 Jun  5  2016 ext.dic

-rw-r--r-- 1 root root     404 Jun  5  2016 IKAnalyzer.cfg.xml

-rw-r--r-- 1 root root 1167537 Jun  5  2016 ik-analyzer-solr5-5.x.jar

-rw-r--r-- 1 root root     912 Mar 30  2017 solr-analyzer-ik-5.1.0.jar

-rw-r--r-- 1 root root    8245 Jun  5  2016 stopword.dic

-rw-r--r-- 1 root root 209862 Mar 30  2017 pinyin4j-2.5.0.jar

-rw-r--r-- 1 root root  10398 Mar 30  2017 pinyinAnalyzer4.3.1.jar

b、將配置檔案拷貝到solrclasses檔案,將jar放到lib檔案

-rw-r--r-- 1 root root 209862 Mar 30  2017 pinyin4j-2.5.0.jar

-rw-r--r-- 1 root root  10398 Mar 30  2017 pinyinAnalyzer4.3.1.jar

[[email protected] pinyin]# cp pinyin* /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib/

[[email protected] pinyin]#

-rw-r--r-- 1 root root      41 Jun  5  2016 ext.dic

-rw-r--r-- 1 root root     404 Jun  5  2016 IKAnalyzer.cfg.xml

-rw-r--r-- 1 root root 1167537 Jun  5  2016 ik-analyzer-solr5-5.x.jar

-rw-r--r-- 1 root root     912 Mar 30  2017 solr-analyzer-ik-5.1.0.jar

-rw-r--r-- 1 root root    8245 Jun  5  2016 stopword.dic

[[email protected] ikanalyzer-solr5]# cp ik-analyzer-solr5-5.x.jar solr-analyzer-ik-5.1.0.jar /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/lib/

[[email protected] ikanalyzer-solr5]#

 複製配置檔案

[[email protected] ikanalyzer-solr5]#cp ext.dic IKAnalyzer.cfg.xml stopword.dic /usr/local/solr/solrtomcat/webapps/solr/WEB-INF/classes/

c、修改配置檔案

修改/usr/local/solr/solrhome/mycore/conf/managed-schema檔案

新增如下內容

 <!--新增拼音詞典-->
        <fieldType name="text_pinyin" class="solr.TextField" positionIncrementGap="0">
        <analyzer type="index">
         <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
         <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
           <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
           </analyzer>
           <analyzer type="query">
           <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory"/>
        <filter class="com.shentong.search.analyzers.PinyinTransformTokenFilterFactory" minTermLenght="2" />
        <filter class="com.shentong.search.analyzers.PinyinNGramTokenFilterFactory" minGram="1" maxGram="20" />
        </analyzer>
        </fieldType>
 <!-- 我新增的IK分詞 -->
<fieldType name="text_ik" class="solr.TextField">
   <analyzer type="index">
      <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>
   </analyzer>
   <analyzer type="query">
      <tokenizer class="org.apache.lucene.analysis.ik.IKTokenizerFactory" useSmart="true"/>
   </analyzer>
</fieldType>
  <!--配置資料內容--><!--根據實際需要配置欄位-->
        <field name="item_title" type="text_pinyin" indexed="true" stored="true"/>
        <field name="item_city_id" type="pint" indexed="false" stored="true" />

(這裡面的欄位發生了變化)int對應pint ,long 對應plong如下圖所示

      配置複製欄位

 <!--配置複製欄位-->
        <field name="item_keywords" type="text_pinyin" indexed="true" stored="false" multiValued="true"/>
        <copyField source="item_shopname" dest="item_keywords"/>

d:測試

若沒有core,再重新新增一下。出現下面介面證明配置成功。

3.3新增資料

public void addDocument() throws Exception {
		//建立一連線
		SolrServer solrServer = new HttpSolrServer("http://192.168.220.121:8080/solr/mycore");
		//建立一個文件物件
		SolrInputDocument document = new SolrInputDocument();
		document.addField("id", "test000");
		document.addField("item_title", "測試商品2");
		document.addField("item_price", 54321);
		//把文件物件寫入索引庫
		solrServer.add(document);
		//提交
		solrServer.commit();
	}
        @Test
	public void testSolr() throws SolrServerException, IOException{//查詢所有
		SolrServer solrServer=new HttpSolrServer("http://192.168.220.121:8080/solr/mycore");
		//solrServer.deleteById("test001");
		solrServer.deleteByQuery("*:*");
			solrServer.commit();
	}
	@Test
	public void testQuery() throws SolrServerException{//過濾查詢
		SolrServer solrServer=new HttpSolrServer("http://192.168.220.121:8080/solr/mycore");
		SolrQuery query=new SolrQuery();
		query.set("q", "*:*");
		String [] fq={"item_cat_id:2"}; 
		query.addFilterQuery(fq);  //過濾 
		QueryResponse result = solrServer.query(query);
		SolrDocumentList results = result.getResults();
		for (SolrDocument list:results){
			String str1 = list.get("item_gid").toString();
			String str2=list.get("item_title").toString();
			System.out.println("分類gid-----"+str1);
			System.out.println("商品名稱-----"+str2);
		}		
	}
3、4、託管資料(此處的內容轉載來自點選開啟連結

相關推薦

Linux系統Solr7.0安裝設定中文拼音檢索

一、準備工作Jdk版本 1.8.0_151。Tomcat版本 apache-tomcat-8.0.50Solr版本 solr-7.0.0二、安裝solr1、安裝jdk不會的參考點選開啟連結tomcat安裝請自行百度2、安裝solr 2.1、首先將solr-7.0.0.tgz上

Linux Mutt的安裝設定

聽說Linux 下用Mutt收發郵件效率會比較高,所以剛才安裝了Mutt以及msmtp,隨後進行賬號得設定,現在已經可以成功收發郵件了。但具體得使用還需學習!前提:郵箱開通SMTP服務,這個可以在設定裡面找到,以網易yeah郵箱為例,開通SMTP服務的時候需要繫結手機。此外還

Ubuntu系統OpenLDAP的安裝配置

操作系統 ldap 前言LDAP(Lightweight Directory Access Protocol)是基於X.500標準的輕量級目錄訪問協議,在Unix操作系統裏面,和NIS,DNS一樣,屬於名稱服務(Naming Service)。本文描述了如何在Ubuntu操作系統上面,搭建LDAP服務

window10系統caffe的安裝配置matlab接口(顯卡為1080)

文件重命名 port watermark 無法打開 系統環境變量 警告 自動下載 解決辦法。 單擊 caffe一般是在linux系統下安裝,網上關於windows下安裝教程教程,且每個教程都不是很全,我在這邊總結一下流程及所有bug 的解決辦法。 我是在w

Linux 系統中 Docker 容器安裝使用

技術分享 doc 輕量級 sudo ali 高性能 公有 新的 fig Docker 簡介 產生背景 項目的開發環境和部署環境不一致,部署環境配置難度大。集群技術的發展,集群的相同配置操作難度大。 基本理念 使用Go語言實現的雲開源項目,"一次編譯,處處運行",只需要一次配

Linux系統SUDO的使用定義設定

Linux系統SUDO的使用定義及設定 什麼是sudo?Sudo是可以讓某個使用者不需要擁有(管理員)的賬號密碼,可以執行管理員的許可權的。作為管理員可以指派某些使用者可以執行某些 特定命令。 Sudo的特點   它的特性主要有這樣幾點:   Sudo能夠限制使用者只在某臺主機上執行某些命令   Sud

linux系統wps的安裝方法

最近在使用linux作業系統,自帶的辦公軟體LibOffice還真用不慣,所以就安裝了wps。CentOS7.0和Ubuntu16.04的安裝方式還真不太一樣,每次安裝的時候都要從網上找方法,時間長了也覺得煩,所以寫成筆記比較好。以下是安裝方法: Ubuntu16.04 1.先下載wps的安

Linux系統virtuoso資料庫安裝與使用

virtuoso資料庫的下載與使用 開源版本的virtuoso資料庫可以在sourceforge下載。我用的是7.25版本。建議下載已經編譯好的generic版本(下載圖中標紅色的那個),需要編譯的那個版本我遇到了openssl版本不支援的問題。 下載完畢後將其解壓到/usr/local下,新增一下環

Linux系統hbase的安裝

1:首先需要搭建hadoop叢集環境,具體請參考我之前的部落格https://mp.csdn.net/postedit/84405238,裡面有詳細的介紹。 2:hbase的下載 hbase的下載地址:http://archive.apache.org/dist/hbase/ 3:

linux系統mongodb的安裝使用教程

    MongoDB是一個C++編寫的基於分散式檔案儲存的資料庫,是一個介於關係和非關係之間的資料庫,當然也屬於NoSQL的行列,儲存方式和Redis類似,是json格式的kav-value儲存方式,只是Redis是記憶體儲存,而MongoDB是和普通的資料庫目錄一樣儲存

Linux系統Tar檔案安裝方法

、將安裝檔案拷貝至你的目錄中,如果是以root身份登入上的,就將軟體拷貝至/root中。 #cp xxx.tar.gz /root 2、解壓縮。 #tar xvzf xxx.tar.gz 或直接雙擊解壓縮. 3、檢查編譯。 #./configure 4

linux系統mysql的安裝過程

mysql的安裝的方式有兩種,第一種可以通過原始碼安裝,需要通過很長時間的編譯過程。這種方法就不介紹了。第二種是通過二進位制檔案安裝,安裝速度較快,但是安裝包比較大,現在主要介紹這種方法的安裝過程。 1.下載mysql安裝包,下載地址http://dev.my

Linux系統Nginx的安裝配置

系統環境:centos7 64位 Nginx介紹 1)什麼是Nginx Nginx是一款高效能的http 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器。由俄羅斯的程式設計師Igor Sysoev所開發,官方測試n

Windows系統,jdk安裝不同版本環境變數配置

需求:有兩個Javaweb專案,但是使用的是jdk不同的版本。這樣在實際開發中就需要對jdk進行來回切換。 本示例,只是教大家如何在Windows系統下通過系統變數來實現jdk不同版本的切換。 例:jdk1.8.0_131、jdk1.8.0_144 1.先安裝jdk1.8.

linux 系統如何解除安裝go 語言

在linux 系統下,如ubuntu debian ,安裝golang 最方便的方式是用apt-get install。但是不推薦這種方式安裝,建議使用原始碼安裝,如果你使用了apt-get 等方式安裝了,就先把它解除安裝:apt-get purge golang-go使用原

Ubuntu系統常用軟體安裝使用

 1.Vmware下安裝Ubuntu虛擬機器,網路連線方式選擇橋接 2.測試網路是否連線,ping+網址,看是否通,如果不通的話需要配置IP地址     3.ubuntu系統下,配置ip地址是在/etc/network/interfaces檔案中:    

Linux系統MPICH的安裝、配置、HelloWorld程式演示

我們在學習並行這門課的時候使用MPI來講解課程例項的,我是在VMware下安裝了CentOS來跑的,root許可權有風險,操作需謹慎,所以我是在使用者下安裝的。 MPICH3是MPI(Message-Passing Interface)的一個應用實現。所以

win10系統的pytorch安裝環境配置

對於想用pytorch的同學,官網只提供了兩種平臺下的安裝方式,linux和mac os,並沒有windows。然而對於懶得重灌系統,又想用cuda加速的同學,就真的沒有其他辦法了嗎。不,其實windows下也是可以安裝ptorch的。整個安裝分為四步走,分別是Anacond

linux系統開發環境安裝與配置

安裝系統環境 CentOS 6.8 64位 jdk版本 7u80 64位 Tomcat版本 Tomcat7 maven版本 Apache Maven 3.6.0 vsftpd版本 vsftpd-2.2.2-24.el6.x86_64 Nginx版本 nginx-1.14.2 mysq

MAC用homebrew安裝配置apache、phpmysql

我對原文做了少許修改-------遠方的楓葉 我們用到php執行環境的時候總喜歡用整合包,其實在mac下,用homebrew也可以很快的安裝這些東西,配置也很簡單。 homebrew homebrew是mac下的一個包安裝管理工具,使用非常簡單方便。 安裝hom