solr 基本配置

Solr是什么

Solr是apache的頂級(jí)開源項(xiàng)目管行,它是使用java開發(fā) 厨埋,基于lucene的全文檢索服務(wù)器。
Solr比lucene提供了更多的查詢語(yǔ)句捐顷,而且它可擴(kuò)展荡陷、可配置,同時(shí)它對(duì)lucene的性能進(jìn)行了優(yōu)化

Solr是如何實(shí)現(xiàn)全文檢索的

  • 索引流程:solr客戶端(瀏覽器迅涮、java程序)可以向solr服務(wù)端發(fā)送POST請(qǐng)求亲善,請(qǐng)求內(nèi)容是包含F(xiàn)ield等 信息的一個(gè)xml文檔,通過該文檔逗柴,solr實(shí)現(xiàn)對(duì)索引的維護(hù)(增刪改)。
  • 搜索流程:solr客戶端(瀏覽器顿肺、java程序)可以向solr服務(wù)端發(fā)送GET請(qǐng)求戏溺,solr服務(wù)器返回一個(gè)xml 文檔渣蜗。

Solr 和lucene 的區(qū)別

Lucene是一個(gè)全文檢索引擎工具包,它只是一個(gè)jar包旷祸,不能獨(dú)立運(yùn)行耕拷,對(duì)外提供服務(wù)。

Solr是一個(gè)全文檢索服務(wù)器托享,它可以單獨(dú)運(yùn)行在servlet容器骚烧,可以單獨(dú)對(duì)外提供搜索和索引功能。
Solr比lucene在開發(fā)全文檢索功能時(shí)闰围,更快捷赃绊、更方便。

Solr安裝配置

下載Solr

http://archive.apache.org/dist/lucene/solr/

solr 常用命令

solr 命令所在位置

已下載solr文件夾bin下面

啟動(dòng)solr

./solr restart 重啟項(xiàng)目
./solr start   啟動(dòng)
./solr start -p 8984 指定端口啟動(dòng)
./solr restart -m 2g -force 指定占用多大內(nèi)存
在瀏覽器輸入:http://127.0.0.1:8983/solr 即可

創(chuàng)建solr core

./solr create -c newcore(core名稱) -force 刷新網(wǎng)頁(yè)可以查看新建的core

刪除core

./solr delete -c newcore12(core名稱)

刪除core里面所有的數(shù)據(jù)

post -c abc(core名稱) -d "<delete><query>*:*</query></delete>"    

停止solr

 ./solr stop -all

查看solr狀態(tài)

./solr staus

幫助

./solr help

目錄結(jié)構(gòu)

Solr1.png
Solr2.png
Solr3.png

3.3.1 Solr的安裝部署

  • 第一步:安裝tomcat
  • 第二步 將solr.war包羡榴,拷貝到tomcat的webapps目錄下
  • 第三步:解壓縮war包解壓縮之后碧查,將war包刪掉
  • 第四步:添加solr的擴(kuò)展服務(wù)包
![Uploading Solr5_668521.png . . .]

將以上jar包,添加到以下目錄

Solr5.png
  • 第五步:添加log4j.properties 拷貝example》resources 到solr 的Web-INf>classes
  • 第六步:在web.xml中指定solrhome的目錄
Solr6.png

Solrcore的安裝

Solrcore和solrhome
Solrhome是solr服務(wù)運(yùn)行的主目錄校仑,一個(gè)solrhome目錄里面包含多個(gè)solrcore目錄忠售,一個(gè)solrcore目錄里面了一個(gè)solr實(shí)例運(yùn)行時(shí)所需要的配置文件和數(shù)據(jù)文件。

每一個(gè)solrcore都可以單獨(dú)對(duì)外提供搜索和索引服務(wù)迄沫。
多個(gè)solrcore之間沒有關(guān)系稻扬。
Solrcore和solrhome的目錄結(jié)構(gòu)
Solrhome的目錄結(jié)構(gòu)
Solr7.png
Solrcore目錄
Solr8.png
Solrcore的安裝
安裝solrcore需要先安裝solrhome
將以下目錄的文件進(jìn)行拷貝     到solrhome 文件夾下面
Solr9.png
Solr10.png

這樣solrhome和solrcore就安裝成功了。

Solrcore配置

在solrcore的conf目錄下羊瘩,有一個(gè)solrconfig.xml的配置文件泰佳,該配置文件,配置來solrcor的運(yùn)行信息
在該文件中困后,主要配置三個(gè)標(biāo)簽:lib標(biāo)簽乐纸、datadir標(biāo)簽、requestHandler標(biāo)簽

如果對(duì)該文件不進(jìn)行配置也可以摇予,即使用默認(rèn)的配置項(xiàng)汽绢。

Lib 標(biāo)簽
  • Solrcore需要添加一個(gè)擴(kuò)展依賴包,通過lib標(biāo)簽來指定依賴包的地址
  • solr.install.dir:表示solrcore的安裝目錄
    將以下目錄的文件進(jìn)行拷貝
Solr11.png

復(fù)制到以下目錄

Solr12.png

修改lib標(biāo)簽

Solr13.png

####### datadir標(biāo)簽
每個(gè)SolrCore都有自己的索引文件目錄 侧戴,默認(rèn)在SolrCore目錄下的data中宁昭。
如果不想使用默認(rèn)的目錄也可以通過solrConfig.xml更改索引目錄 ,如下:

Solr14.png

####### requestHandler標(biāo)簽
requestHandler請(qǐng)求處理器酗宋,定義了索引和搜索的訪問方式积仗。

  • 通過/update維護(hù)索引,可以完成索引的添加蜕猫、修改寂曹、刪除操作。
    <requestHandler name="/update" class="solr.UpdateRequestHandler">

  • 通過/select搜索索引。
    <requestHandler name="/select" class="solr.SearchHandler">

    <lst name="defaults">
    <str name="echoParams">explicit</str>
    <int name="rows">10</int>
    <str name="wt">json</str>
    <str name="df">text</str>
    </lst>


solr 界面介紹

Solr15.png

Dashboard

儀表盤隆圆,顯示了該Solr實(shí)例開始啟動(dòng)運(yùn)行的時(shí)間漱挚、版本、系統(tǒng)資源渺氧、jvm等信息旨涝。

Logging

Solr運(yùn)行日志信息

Cloud

Cloud即SolrCloud,即Solr云(集群)侣背,當(dāng)使用Solr Cloud模式運(yùn)行時(shí)會(huì)顯示此菜單.

Core Admin

Solr Core的管理界面白华。在這里可以添加SolrCore實(shí)例。

java properties

Solr在JVM 運(yùn)行環(huán)境中的屬性信息贩耐,包括類路徑弧腥、文件編碼、jvm內(nèi)存設(shè)置等信息憔杨。

Tread Dump

顯示Solr Server中當(dāng)前活躍線程信息鸟赫,同時(shí)也可以跟蹤線程運(yùn)行棧信息。

Core selector

選擇一個(gè)SolrCore進(jìn)行詳細(xì)操作
Solr16.png
Analysis
Solr17.png
通過此界面可以測(cè)試索引分析器和搜索分析器的執(zhí)行情況消别。
注:solr中抛蚤,分析器是綁定在域的類型中的。
dataimport
可以定義數(shù)據(jù)導(dǎo)入處理器寻狂,從關(guān)系數(shù)據(jù)庫(kù)將數(shù)據(jù)導(dǎo)入到Solr索引庫(kù)中岁经。
默認(rèn)沒有配置,需要手工配置蛇券。
Document
通過/update表示更新索引缀壤,solr默認(rèn)根據(jù)id(唯一約束)域來更新Document的內(nèi)容,如果根據(jù)id值搜索不到id域則會(huì)執(zhí)行添加操作纠亚,如果找到則更新塘慕。

通過此菜單可以創(chuàng)建索引、更新索引蒂胞、刪除索引等操作
overwrite="true" : solr在做索引的時(shí)候图呢,如果文檔已經(jīng)存在,就用xml中的文檔進(jìn)行替換
commitWithin="1000" : solr 在做索引的時(shí)候骗随,每個(gè)1000(1秒)毫秒蛤织,做一次文檔提交。為了方便測(cè)試也可以在Document中立即提交鸿染,</doc>后添加“<commit/>”
Query
通過/select執(zhí)行搜索索引指蚜,必須指定“q”查詢條件方可搜索

多solrcore的配置

配置多solrcore的好處:

  • 在進(jìn)行solrcloud的時(shí)候,必須配置多solrcore .
  • 每個(gè)solrcore之間是獨(dú)立的涨椒,都可以單獨(dú)對(duì)外提供服務(wù)摊鸡。不同的業(yè)務(wù)模塊可以使用不同的solrcore來提供搜索和索引服務(wù)绽媒。

添加solrcore

  • 第一步:復(fù)制solrhome下的collection1目錄到本目錄下,修改名稱為collection2
  • 第二步:修改solrcore目錄下的core.properties
  • 第三步:重啟tomcat

使用命令
./bin/solr create -c logsys_clinic_analyes -force
http://blog.csdn.net/matthewei6/article/details/50620600

solr 重啟
./solr restart -m 2g -force

Solr的基本使用

Schema.xml

在schema.xml文件中柱宦,主要配置了solrcore的一些數(shù)據(jù)信息些椒,包括Field和FieldType的定義等信息,在solr中掸刊,F(xiàn)ield和FieldType都需要先定義后使用。

Filed

<field name="id" type="string" indexed="true" stored="true" required="true" multiValued="false" /> 
Name:指定域的名稱
Type:指定域的類型
Indexed:是否索引
Stored:是否存儲(chǔ)
Required:是否必須
multiValued:是否多值赢乓,比如商品信息中忧侧,一個(gè)商品有多張圖片,一個(gè)Field像存儲(chǔ)多個(gè)值的話牌芋,必須將multiValued設(shè)置為true蚓炬。

dynamicField

動(dòng)態(tài)域
<dynamicField name="*_i"  type="int"    indexed="true"  stored="true"/>
Name:指定動(dòng)態(tài)域的命名規(guī)則

uniqueKey

指定唯一鍵
<uniqueKey>id</uniqueKey>
其中的id是在Field標(biāo)簽中已經(jīng)定義好的域名,而且該域要設(shè)置為required為true躺屁。
一個(gè)schema.xml文件中必須有且僅有一個(gè)唯一鍵

copyField

復(fù)制域
  <copyField source="product_name" dest="product_keywords" />
Source:要復(fù)制的源域的域名
Dest:目標(biāo)域的域名

由dest指的的目標(biāo)域肯夏,必須設(shè)置multiValued為true。

FieldType

定義域的類型
<fieldType name="text_general" class="solr.TextField" positionIncrementGap="100">
  <analyzer type="index">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <!-- in this example, we will only use synonyms at query time
    <filter class="solr.SynonymFilterFactory" synonyms="index_synonyms.txt" ignoreCase="true" expand="false"/>
    -->
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
  <analyzer type="query">
    <tokenizer class="solr.StandardTokenizerFactory"/>
    <filter class="solr.StopFilterFactory" ignoreCase="true" words="stopwords.txt" />
    <filter class="solr.SynonymFilterFactory" synonyms="synonyms.txt" ignoreCase="true" expand="true"/>
    <filter class="solr.LowerCaseFilterFactory"/>
  </analyzer>
</fieldType>

Name:指定域類型的名稱
Class:指定該域類型對(duì)應(yīng)的solr的類型
Analyzer:指定分析器
Type:index犀暑、query驯击,分別指定搜索和索引時(shí)的分析器
Tokenizer:指定分詞器
Filter:指定過濾器

中文分詞

使用ikanalyzer進(jìn)行中文分詞

  • 第一步 將ikanalyzer的jar包拷貝到以下目錄
Solr18.png
  • 第二步:將ikanalyzer的擴(kuò)展詞庫(kù)的配置文件拷貝到 目錄
Solr19.png
  • 第三步:配置FieldType

    <fieldType name="text_ik" class="solr.TextField">
    <analyzer type="index" useSmart="false"
    class="org.wltea.analyzer.lucene.IKAnalyzer" />
    <analyzer type="query" useSmart="true"
    class="org.wltea.analyzer.lucene.IKAnalyzer" />
    </fieldType>

  • 第四步:配置使用中文分詞的Field
    <field name="product_name" type="text_ik" indexed="true" stored="true" multiValued="false" />

  • 第五步:重啟tomcat

Dataimport

該插件可以將數(shù)據(jù)庫(kù)中指定的sql語(yǔ)句的結(jié)果導(dǎo)入到solr索引庫(kù)中。
  • 第一步:添加jar包
    • Dataimport的jar包 復(fù)制以下目錄的jar包
Solr20.png
添加到以下目錄
Solr21.png
修改solrconfig.xml文件耐亏,添加lib標(biāo)簽
`<lib dir="${solr.install.dir:../..}/contrib/dataimporthandler/lib" regex=".*\.jar" />`
* MySQL數(shù)據(jù)庫(kù)驅(qū)動(dòng)包
    將mysql的驅(qū)動(dòng)包徊都,復(fù)制到以下目錄
Solr22.png
    修改solrconfig.xml文件,添加lib標(biāo)簽
    `<lib dir="${solr.install.dir:../..}/contrib/db/lib" regex=".*\.jar" />`
  • 第二步:配置requestHandler
    在solrconfig.xml中广辰,添加一個(gè)dataimport的requestHandler
    <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
    <str name="config">data-config.xml</str>
    </lst>

    </requestHandler>

  • 第三步:創(chuàng)建data-config.xml
    在solrconfig.xml同級(jí)目錄下暇矫,創(chuàng)建data-config.xml

  • 第四步: 重啟tomcat


2016.12.19

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市择吊,隨后出現(xiàn)的幾起案子李根,更是在濱河造成了極大的恐慌,老刑警劉巖几睛,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件房轿,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡枉长,警方通過查閱死者的電腦和手機(jī)冀续,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來必峰,“玉大人洪唐,你說我怎么就攤上這事『鹨希” “怎么了凭需?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵问欠,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我粒蜈,道長(zhǎng)顺献,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任枯怖,我火速辦了婚禮注整,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘度硝。我一直安慰自己肿轨,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布蕊程。 她就那樣靜靜地躺著椒袍,像睡著了一般。 火紅的嫁衣襯著肌膚如雪藻茂。 梳的紋絲不亂的頭發(fā)上驹暑,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天,我揣著相機(jī)與錄音辨赐,去河邊找鬼优俘。 笑死,一個(gè)胖子當(dāng)著我的面吹牛肖油,可吹牛的內(nèi)容都是我干的兼吓。 我是一名探鬼主播,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼森枪,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼视搏!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起县袱,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤浑娜,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后式散,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體筋遭,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年暴拄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了漓滔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡乖篷,死狀恐怖响驴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情撕蔼,我是刑警寧澤豁鲤,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布秽誊,位于F島的核電站,受9級(jí)特大地震影響琳骡,放射性物質(zhì)發(fā)生泄漏锅论。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一楣号、第九天 我趴在偏房一處隱蔽的房頂上張望最易。 院中可真熱鬧,春花似錦炫狱、人聲如沸耘纱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至作谚,卻和暖如春绍申,著一層夾襖步出監(jiān)牢的瞬間刃泌,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工第美, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陆爽。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓什往,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親慌闭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子别威,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

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

  • Solr中需要配置的文件主要有三個(gè): 我們從配置的角度看一下Solr Server是怎么啟動(dòng)的。在Solr 4.7...
    尚亦汐閱讀 406評(píng)論 0 1
  • 1 準(zhǔn)備工作及相關(guān)介紹 solr和lucene的版本是同步更新的驴剔,最新版本是6.5.0省古。本案例使用4.10.3 j...
    阿太哥閱讀 2,335評(píng)論 1 5
  • 兩年前用過solr5.1版本的,當(dāng)時(shí)只是簡(jiǎn)單入個(gè)門丧失,拿來在項(xiàng)目里建個(gè)全文索引豺妓,然后再query,其他什么也沒做布讹,還...
    Coselding閱讀 3,094評(píng)論 3 22
  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,811評(píng)論 6 342
  • 在標(biāo)簽 里面可以進(jìn)行一些優(yōu)化搜索的配置琳拭。在Solr的查詢過程中,運(yùn)用到一個(gè)叫searcher的組件描验,在一個(gè)特定的時(shí)...
    尚亦汐閱讀 873評(píng)論 0 1