entos最新版solr5.3.1安裝和數(shù)據(jù)整理以及遇到的問題解答

首先介紹一下solr

Solr現(xiàn)在是一個獨(dú)立的服務(wù)器。

從Solr5.0開始,Solr不再發(fā)布為在任何Servlet容器(tomcat等 自帶一個jetty服務(wù)器)中部署的“war”Web應(yīng)用程序包(Web Application Archive)。Solr現(xiàn)在部署為一個獨(dú)立的java服務(wù)器應(yīng)用程序方篮,包含在Unix谜慌、linux和Windows平臺上可以使用的啟動和停止腳本辙喂,以及將Solr作為服務(wù)安裝到類Unix平臺的/etc/init.d下的安裝腳本据沈。

從本質(zhì)上看啃炸,Solr仍然以Servlet APIs實(shí)現(xiàn),并在Jetty上運(yùn)行卓舵,但只是作為一個實(shí)現(xiàn)南用。部署為“webapp”到其他的Servlet容器(或其他Jetty實(shí)例)上不被支持,可能在未來的Solr 5.x版本不會工作掏湾。而可能會帶來Solr的其他改變裹虫,事實(shí)上是利用自定義網(wǎng)絡(luò)協(xié)議棧功能

一、安裝JAVA環(huán)境以及JRE

# cd /tmp/

# tar zxvf ?jdk-7u9-linux-x64.tar.gz

# mv ?jdk1.7.0_09 /usr/

# vi ?/etc/profile

在最后一行復(fù)制以下代碼添加如下內(nèi)容:

JAVA_HOME=/usr/jdk1.7.0_09/

CLASSPATH=.:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$PATH

export JAVA_HOME CLASSPATH PATH

保存退出(:wq!)后融击,執(zhí)行下面命令生效:

source /etc/profile

二筑公、安裝Solr5.3.1

去http://www.apache.org/dyn/closer.lua/lucene/solr/5.3.1下載Solr安裝文件solr-5.3.1.tgz。

將solr-5.3.1.tgz文件放到/home/solr目錄下尊浪,執(zhí)行如下腳本:

創(chuàng)建應(yīng)用程序目錄

# mkdir -p /home/solr

# cd /home/solr

# tar -zxvf solr-5.3.1.tgz // 解壓壓縮包

創(chuàng)建運(yùn)行solr的用戶并賦權(quán)

# groupadd solr

# useradd -g solr solr

# chown -R solr.solr /home/solr ?將home/solr下面的所有目錄修改成solr用戶權(quán)限

三匣屡、安裝solr服務(wù)

# solr-5.3.1/bin/install_solr_service.sh solr-5.3.1.tgz -d /home/solr/data -i /home/solr

至此已經(jīng)安裝好solr5.3.1然后檢查服務(wù)狀態(tài)

#service solr status

將會看到如下輸出:

Solr process 29692 running on port 8983

{

"solr_home":"/home/solr/data/",

"version":"5.3.1 1696229 - noble - 2015-12-4 17:10:43",

"startTime":"2015-12-4T01:32:03.919Z",

"uptime":"0 days, 0 hours, 3 minutes, 6 seconds",

"memory":"89.8 MB (%18.3) of 490.7 MB"

}

說明已經(jīng)正常啟動

四、查看solr命令選項(xiàng)

solr命令用法

定位到solr應(yīng)用程序目錄

# cd /home/solr/solr-5.3.1/solr

# ./bin/solr restart|start|stop 重啟|啟動|關(guān)閉 服務(wù)

接下來就是添加core或者集合的時候了

一拇涤、首先創(chuàng)建一個core 命令為:su - solr -c "/home/solr/solr-5.3.1/bin/solr create -c companys"或者 切換到/home/solr/solr-5.3.1/ 目錄下 通過./bin/solr create -c companys

su - solr意思是切換到solr用戶后進(jìn)行創(chuàng)建core核心

如果以上命令把core創(chuàng)建到/home/solr/data/下面的話 是有問題的 solr默認(rèn)加載的core目錄是在

/home/solr/solr-5.3.1/server/solr/下面捣作,然后可以復(fù)制/home/solr/data/下面core或者集合到/home/solr/solr-5.3.1/server/solr/目錄下面(糾正:其實(shí)這段是有問題的后來查看資料發(fā)現(xiàn)solr默認(rèn)的數(shù)據(jù)文件是在根目錄下面即/home/solr/data)

這塊的真正原因在于安裝腳本的時候默認(rèn)的路徑 其實(shí)這里可以修改 如下圖所示:

SOLR_PID_DIR=/home/solr

SOLR_HOME=/home/solr/data 主要是這塊的配置 如果是在server下面的solr就會將core和索引數(shù)據(jù)創(chuàng)建到server下面 如果是根目錄data那么索引就會在data下面

LOG4J_PROPS=/home/solr/log4j.properties

SOLR_LOGS_DIR=/home/solr/logs

SOLR_PORT=8983

然后重啟solr服務(wù)

啟動步驟:

(1)切換到/home/solr/solr-5.3.1/

(2)執(zhí)行: # ./bin/solr restart 等待幾秒中會自動重啟成功

(3)接下來就會創(chuàng)建好相關(guān)的core或者集合 如下圖所示:

二、接下來看看core里面的組成部分 進(jìn)入companys core目錄下面

里面有conf鹅士、data2個目錄和core.properties

接著進(jìn)入conf目錄下面里面有下圖幾個配置文件和相關(guān)其他文件

其中solrconfig.xml是solr的相關(guān)配置文件

managed_schema主要定義索引的字段和字段類型還有一些分詞等等設(shè)置 (類似于數(shù)據(jù)表配置文件貌似是solr5以后的文件名)

data-config.xml是將mysql數(shù)據(jù)導(dǎo)入到solr的相關(guān)配置 首先得在solrconfig.xml中配置開啟一個xml選項(xiàng)后

data-config.xml

然后在data-config.xml里面設(shè)置以下

注:上面的database_name是你創(chuàng)建的數(shù)據(jù)庫名券躁,userName是數(shù)據(jù)庫用戶名,passWord是數(shù)據(jù)庫密碼掉盅,tableName是你的表名也拜,field區(qū)域當(dāng)中的column對應(yīng)數(shù)據(jù)庫中的列,而name就是solr中顯示的名稱趾痘。

(1)在配置完以上設(shè)置項(xiàng)后還需要將solr-dataimporthandler-5.3.1.jar從solr-5.3.1/dist/文件夾下copy到solr-5.3.1/server/solr-webapp/webapp/WEB-INF/lib當(dāng)中慢哈,此jar包是導(dǎo)入數(shù)據(jù)用的。

(2)再從mysql官網(wǎng)中下載一個mysql-connector-java-5.1.35.zip壓縮包永票,解壓出一個mysql-connector-java-5.1.35-bin.jar包卵贱,將它c(diǎn)opy到solr-5.3.1/server/lib下。

然后在solr的管理平臺才能通過在瀏覽器中輸入:localhost:8983/solr/dataimport?command=full-import或者圖形操作來完成全量數(shù)據(jù)導(dǎo)入瓦侮,在每次全量數(shù)據(jù)導(dǎo)入執(zhí)行的時候艰赞,原有索引會被刪除佣谐,如果不想刪除原有索引肚吏,可以運(yùn)行如下命令:localhost:8983/solr/dataimport?command=full-import&clean=false

三、接下來講解shema的設(shè)置

vim managed-schema 之前版本名稱叫shema.xml 最新版貌似改了 然后在里面添加數(shù)據(jù)庫相關(guān)字段

接下來介紹字段相關(guān)知識:

性能須知: 這里包含了很多實(shí)際應(yīng)用不需要的可選項(xiàng)狭魂。 為改善性能罚攀,你可以:

- 盡量將所有僅用于搜索党觅,而不用于實(shí)際返回的字段設(shè)置stored="false";

- 盡量將所有僅用于返回斋泄,而不用于搜索的字段設(shè)置indexed="false"杯瞻;

- 去掉所有不需要的copyField 語句;

- 為了達(dá)到最佳的索引大小和搜索性能,對所有的文本字段設(shè)置indexed="false"炫掐,

使用copyField將他們拷貝到“整合字段”name="text"的字段中魁莉,使用整合字段進(jìn)行搜索;

- 使用server模式來運(yùn)行JVM,同時將log級別調(diào)高, 避免輸出所有請求的日志募胃。

-->

旗唁。。痹束。检疫。。

-->

name: 必須屬性 - 字段名

type: 必須屬性 - 中定義的字段類型

indexed: 如果字段需要被索引(用于搜索或排序)祷嘶,屬性值設(shè)置為true

stored: 如果字段內(nèi)容需要被返回屎媳,值設(shè)置為true

docValues: 如果這個字段應(yīng)該有文檔值(doc values),設(shè)置為true论巍。文檔值在門面搜索烛谊,分組,排序和函數(shù)查詢中會非常有用嘉汰。雖然不是必須的晒来,而且會導(dǎo)致 ? ? ? ? ? ? ? ? 生成索引變大變慢,但這樣設(shè)置會使索引加載更快郑现,更加NRT友好湃崩,更高的內(nèi)存使用效率。然而也有一些使用限制:目前僅支持StrField, UUIDFiel ? ? ? ? ? ? ? ?d和所有 Trie*Fields, 并且依賴字段類型, 可能要求字段為單值(single-valued)的,必須的或者有默認(rèn)值接箫。

multiValued: 如果這個字段在每個文檔中可能包含多個值攒读,設(shè)置為true

termVectors: [false] 設(shè)置為true后,會保存所給字段的相關(guān)向量(vector)

當(dāng)使用MoreLikeThis時, 用于相似度判斷的字段需要設(shè)置為stored來達(dá)到最佳性能.

termPositions: 保存和向量相關(guān)的位置信息辛友,會增加存儲開銷

termOffsets: 保存 offset 和向量相關(guān)的信息薄扁,會增加存儲開銷

required: 字段必須有值,否則會拋異常

default: 在增加文檔時废累,可以根據(jù)需要為字段設(shè)置一個默認(rèn)值邓梅,防止為空

sortMissingLast: ? ?指沒有該指定字段數(shù)據(jù)的document排在有該指定字段數(shù)據(jù)的document的后面

sortMissingFirst: ? ?指沒有該指定字段數(shù)據(jù)的document排在有該指定字段數(shù)據(jù)的document的前面

omitNorms: ? ?字段的長度不影響得分和在索引時不做boost時,設(shè)置它為true邑滨。一般文本字段不設(shè)置為true日缨。

compressed: ? ?字段是壓縮的。這可能導(dǎo)致索引和搜索變慢掖看,但會減少存儲空間匣距,只有StrField和TextField是可以壓縮面哥,這通常適合字段的長度超過200個字符。

positionIncrementGap: 和multiValued一起使用毅待,設(shè)置多個值之間的虛擬空白的數(shù)量

-->

id

文檔的唯一標(biāo)識尚卫, 必須填寫這個field(除非該field被標(biāo)記required="false"),否則solr建立索引報(bào)錯尸红。

name

如果搜索參數(shù)中沒有指定具體的field吱涉,那么這是默認(rèn)的域。

配置搜索參數(shù)短語間的邏輯外里,可以是"AND|OR"邑飒。

中文分詞后續(xù)在介紹。级乐。疙咸。。风科。撒轮。。

四贼穆、至此所有配置都已經(jīng)完成题山,接下來重啟solr 進(jìn)入到/home/solr/solr-5.3.1/solr 然后執(zhí)行

# ./bin/solr restart

等待啟動以后然后通過

http://localhost:8983/solr/#/進(jìn)入到solr的管理平臺頁面

下圖就是在添加一個core或者集合 首先得完成上面的那些配置 主要是先通過命令去生成一個core然后配置好或者不配置然后在這里添加,通過錯誤提示然后進(jìn)行配置或者文件相關(guān)創(chuàng)建或者修改等等

下圖展示一個core里面的查詢相關(guān)的數(shù)據(jù):

數(shù)據(jù)導(dǎo)入有兩種實(shí)現(xiàn)方式

(1)通過solr自帶的導(dǎo)入方式 有全量導(dǎo)入和增量導(dǎo)入 首先得配置好上面第二部分和第三部分紅色的

然后點(diǎn)擊

選擇好相關(guān)選項(xiàng)后點(diǎn)擊 execute按鈕 就會在右側(cè)顯示相關(guān)實(shí)時動態(tài)

最后補(bǔ)充幾個容易忽視的問題也會對使用造成干擾

1故痊、

改完重啟solr以后 再次打開solr的管理平臺 就會自動出現(xiàn)已經(jīng)創(chuàng)建好的core 如圖:

2顶瞳、配置好的solr沒有任何數(shù)據(jù),啟動時報(bào)錯:SolrException: Invalid Number: MA147LL/A

這不是你的錯愕秫,你可能是把solr schema.xml的id設(shè)置成了int類型慨菱,設(shè)置成int類型沒什么錯,但是solr啟動是會掃描conf目錄下的elevate.xml文件戴甩,這個文件中定義的id值是MA147LL/A所以就會出現(xiàn)異常SolrException: Invalid Number: MA147LL/A

解決問題的方法是修改elevate.xml文件符喝,將其中的id值設(shè)置為數(shù)字,就可以了甜孤。

3协饲、如果配置好后執(zhí)行更新solr數(shù)據(jù)命令后 solr報(bào)以下錯誤后

只需要把當(dāng)前core的managed-schema或者schema.xml配置文件中的自增id改成string類型 重啟solr后就不會報(bào)錯了這是因?yàn)閟olr本身索引是基于文本值的

c_id

4、solr的原子更新 就是只改某個字段問題解決:

官網(wǎng)文檔地址:http://wiki.apache.org/solr/UpdateJSON#Solr_4.0_Example

至此 安裝和測試數(shù)據(jù)整合已經(jīng)完畢?特此備注下已備忘 歡迎各位拍磚缴川。茉稠。。把夸。而线。

下一篇會講solr的一些用法solr5使用方法篇以及高級功能facet使用

本文出自 “網(wǎng)站架構(gòu)技術(shù)總結(jié)” 博客,請務(wù)必保留此出處http://mengphilip.blog.51cto.com/2243393/1719686

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市吞获,隨后出現(xiàn)的幾起案子况凉,更是在濱河造成了極大的恐慌谚鄙,老刑警劉巖各拷,帶你破解...
    沈念sama閱讀 206,968評論 6 482
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異闷营,居然都是意外死亡烤黍,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,601評論 2 382
  • 文/潘曉璐 我一進(jìn)店門话侧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來贷祈,“玉大人俩功,你說我怎么就攤上這事」嬲埽” “怎么了?”我有些...
    開封第一講書人閱讀 153,220評論 0 344
  • 文/不壞的土叔 我叫張陵诽表,是天一觀的道長唉锌。 經(jīng)常有香客問我,道長竿奏,這世上最難降的妖魔是什么袄简? 我笑而不...
    開封第一講書人閱讀 55,416評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮泛啸,結(jié)果婚禮上绿语,老公的妹妹穿的比我還像新娘。我一直安慰自己候址,他們只是感情好吕粹,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,425評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著岗仑,像睡著了一般昂芜。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上赔蒲,一...
    開封第一講書人閱讀 49,144評論 1 285
  • 那天泌神,我揣著相機(jī)與錄音,去河邊找鬼舞虱。 笑死欢际,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的矾兜。 我是一名探鬼主播损趋,決...
    沈念sama閱讀 38,432評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼椅寺!你這毒婦竟也來了浑槽?” 一聲冷哼從身側(cè)響起蒋失,我...
    開封第一講書人閱讀 37,088評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎桐玻,沒想到半個月后篙挽,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,586評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡镊靴,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,028評論 2 325
  • 正文 我和宋清朗相戀三年铣卡,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片偏竟。...
    茶點(diǎn)故事閱讀 38,137評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡煮落,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出踊谋,到底是詐尸還是另有隱情蝉仇,我是刑警寧澤,帶...
    沈念sama閱讀 33,783評論 4 324
  • 正文 年R本政府宣布殖蚕,位于F島的核電站轿衔,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏嫌褪。R本人自食惡果不足惜呀枢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,343評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望笼痛。 院中可真熱鬧裙秋,春花似錦、人聲如沸缨伊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,333評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刻坊。三九已至枷恕,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間谭胚,已是汗流浹背徐块。 一陣腳步聲響...
    開封第一講書人閱讀 31,559評論 1 262
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留灾而,地道東北人胡控。 一個月前我還...
    沈念sama閱讀 45,595評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像旁趟,于是被迫代替她去往敵國和親昼激。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,901評論 2 345

推薦閱讀更多精彩內(nèi)容