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]# 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資料夾到solrtomcat的webapps目錄並重命名為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* 開頭的5個jar複製到 /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,複製到剛才部署的solr的WEB-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保持一致
instanceDir: solrhome目錄下的例項類目
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、將配置檔案拷貝到solr的classes檔案,將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、php和mysql
我對原文做了少許修改-------遠方的楓葉 我們用到php執行環境的時候總喜歡用整合包,其實在mac下,用homebrew也可以很快的安裝這些東西,配置也很簡單。 homebrew homebrew是mac下的一個包安裝管理工具,使用非常簡單方便。 安裝hom