部署solr通常有2中方式果正,一個(gè)是部署在外部的web容器中例如tomcat秦躯,另一個(gè)是使用solr內(nèi)置的jetty作為web容器忆谓。
我們這里采用內(nèi)置的jetty作為web容器的部署方式。
1.下載solr
下載solr
本次使用的solr版本是6.6.0
下載之后找到合適的位置解壓
2. 啟動(dòng)solr
在打開cmd窗口進(jìn)入solr的解壓目錄下的bin文件夾執(zhí)行
solr start -p 8983
這時(shí)我們就可以在瀏覽器訪問solr的管理界面
3. 創(chuàng)建core
- 方法一
通過查看solr根目錄下的README文件了解到可以使用
solr create -c name
來創(chuàng)建core
根據(jù)上面命令的反饋可以得到一些有用的信息
- 每個(gè)core需要有一個(gè) core instance directory
- 可以使用solr的rest 接口來實(shí)現(xiàn)core的創(chuàng)建
這時(shí)候我們刷新下一管理界面就可以看到
- 方法二
使用solr管理頁面 創(chuàng)建
-
在solr.home 目錄下創(chuàng)建一個(gè)文件夾踱承,和core的名稱相同
這里我們創(chuàng)建core3
2.拷貝配置文件到core3中
上圖中的configsets文件中存放的是基本的配置文件
我們把configsets中的basic_configs下的conf拷貝到core3中
然后在core3中新建文件夾data倡缠,作為索引數(shù)據(jù)的存放文件
- 創(chuàng)建core
在solr管理頁面中點(diǎn)擊core admin 下的 add core,修改name 和instanceDir為core3茎活,然后點(diǎn)擊add core
-
創(chuàng)建完成
點(diǎn)擊完成之后 core admin中就會多了一個(gè)core3
core3的文件夾下面也多出了額一個(gè)core.properties文件
內(nèi)容是
#Written by CorePropertiesLocator
#Fri Sep 15 03:34:37 UTC 2017
name=core3
config=solrconfig.xml
schema=schema.xml
dataDir=data
- 方法三
通過方法一種的命令反饋我們知道昙沦,也可是使用solr的rest 接口來完成core的創(chuàng)建
首先完成方法二的前兩步,給core取名為core4
- 請求solr rest接口
http://localhost:8983/solr/admin/cores?action=CREATE&name=core4&instanceDir=core4
- 創(chuàng)建成功
4. 導(dǎo)入數(shù)據(jù)
solr中負(fù)責(zé)導(dǎo)入數(shù)據(jù)的模塊叫做DataImportHandler载荔,它有多種實(shí)現(xiàn)方式
- 從數(shù)據(jù)庫導(dǎo)入
solr支持多中形式的數(shù)據(jù)導(dǎo)入盾饮,其中最常用的就是從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)
我們可以從solr自帶的/example/example-DIH/solr/db/conf中找到從數(shù)據(jù)庫導(dǎo)入數(shù)據(jù)的相關(guān)配置作為參考,然后修改core1內(nèi)的配置
- 修改solrconfig.xml
添加如下配置
<requestHandler name="/dataimport" class="solr.DataImportHandler">
<lst name="defaults">
<str name="config">db-data-config.xml</str>
</lst>
</requestHandler>
- 從example中拷貝db-data-config.xml到core1懒熙,并根據(jù)數(shù)據(jù)庫的使用情況進(jìn)行修改丘损,我這里使用的是mysql
<dataConfig>
<dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456" />
<document>
<entity name="item" query="select * from showentity">
<field column="description" name="description" />
<field column="title" name="title" />
<field column="createTime" name="createTime" />
<field column="type" name="type" />
</entity>
</document>
</dataConfig>
- 將mysql的數(shù)據(jù)庫連接jar拷貝到solr根目錄的dist文件中,然后修改solrconfig.xml,加載這個(gè)jar包 工扎,和dataimport相關(guān)的jar包
<lib dir="${solr.install.dir:../../../..}/dist/" regex=".*\.jar" />
- 修改managed-schema為schema.xml并根據(jù)db-data-config.xml中的配置的從數(shù)據(jù)庫導(dǎo)入的字段進(jìn)行修改.
<field name="title" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="description" type="text_general" indexed="true" stored="true" required="true" multiValued="false" />
<field name="createTime" type="date" indexed="true" stored="true" required="true" multiValued="false" />
<field name="type" type="string" indexed="true" stored="true" required="true" multiValued="false" />
- 在core admin選項(xiàng)中 選擇剛剛修改的core徘钥,然后點(diǎn)擊reload按鈕,加載剛剛上面修改的配置
- 開始導(dǎo)入數(shù)據(jù)
選擇剛剛修改的core 下面的DataImport選項(xiàng)肢娘,然后點(diǎn)擊execute按鈕
- 進(jìn)行查詢
在query選項(xiàng)中進(jìn)行查詢吏饿,發(fā)現(xiàn)數(shù)據(jù)已經(jīng)導(dǎo)入進(jìn)去了
總結(jié)
ok到這里就完成了solr單點(diǎn)的部署和簡單的配置,后面會繼續(xù)總結(jié)一下solr cloud集群的部署蔬浙,solr一些配置文件的說明等