共計(jì) 4833 個(gè)字符,預(yù)計(jì)需要花費(fèi) 13 分鐘才能閱讀完成。
這篇文章主要介紹“solr 增量導(dǎo)入數(shù)據(jù)怎么配置”,在日常操作中,相信很多人在 solr 增量導(dǎo)入數(shù)據(jù)怎么配置問題上存在疑惑,丸趣 TV 小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”solr 增量導(dǎo)入數(shù)據(jù)怎么配置”的疑惑有所幫助!接下來(lái),請(qǐng)跟著丸趣 TV 小編一起來(lái)學(xué)習(xí)吧!
簡(jiǎn)介: solr5.0 是一個(gè)獨(dú)立的應(yīng)用程序, 不再依賴其他 Web 服務(wù)器就能提供 Web 服務(wù)(這是和 4.x 版本最大的差異, 內(nèi)置 jetty)。
啟動(dòng) solr
solr 提供了啟動(dòng)腳本
bin/solr start
前臺(tái)運(yùn)行 bin/solr start -f
指定端口號(hào) bin/solr start -p 8984(默認(rèn)端口號(hào) 8983)查看 solr 狀態(tài) bin/solr status
結(jié)束 solr bin/solr stop -p 8984
后臺(tái)管理地址 http://localhost:8984/solr
logging: 顯示日志
Core Admin: core 就是搜索示例,放置索引。
java properties:查看 java 配置信息
Thread dump: 查看線程信息
創(chuàng)建一個(gè)搜索實(shí)例
{solr 安裝路徑}/server/solr/ 新建一個(gè)文件夾命名為 test
拷貝{solr 安裝路徑}/server/solr/configsets/sample_techproducts_configs 到 test 目錄下
目錄結(jié)構(gòu)如下:
在后臺(tái)采用如下配置:
配置 smartcn 分詞期
第一步: 導(dǎo)入 smartcn 的 jar 包
在{solr 安裝路徑}/server/solr/test/conf/solrconfig.xml 加入如下代碼
lib dir= ${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs/ regex= .*smartcn.*\.jar /lib
第二步: 配置分詞器
1.solr5
在{solr 安裝路徑}/server/solr/test/conf/schema.xml 加入如下代碼
fieldType name= text_cn >2.solr6
在 {solr 安裝路徑}/server/solr/test/conf/managed-schema 加入如下代碼
fieldType name= text_cn >
第三步: 檢查是否正確配置
如果可以搜索到 text_cn 即表示配置成功,最好用一段文字測(cè)試下分詞結(jié)果。
配置數(shù)據(jù)導(dǎo)入 handler(用于數(shù)據(jù)導(dǎo)入,生成索引)
第一步:導(dǎo)入相關(guān) jar 包(solr6 不需要這一步)
在{solr 安裝路徑}/server/solr/test/conf/solrconfig.xml 加入如下代碼
lib dir= ${solr.install.dir:../../../..}/dist/ regex= solr-dataimporthandler-.*\.jar /
第二步: 配置 handler(solr6 不需要這一步)
在{solr 安裝路徑}/server/solr/test/conf/solrconfig.xml 加入如下代碼
requestHandler name= /dataimport >
第三步: 配置數(shù)據(jù)源, 源數(shù)據(jù)與索引的隱射關(guān)系
在{solr 安裝路徑}/server/solr/test/conf/ 下新建 db-data-config.xml, 配置如下:
dataConfig
dataSource driver= com.mysql.jdbc.Driver url= jdbc:mysql://127.0.0.1:3306/appfamecms user= 1 password= 1 /
document name= articles
entity name= cms_article query= select id,title,content,create_time from cms_article
field column= id name= id /
field column= title name= title /
field column= content name= content /
field column= create_time name= create_time /
/entity
/document
/dataConfig
第四步:驗(yàn)證配置是否成功
在后臺(tái) core admin 中 reload 當(dāng)前搜索實(shí)例的配置
then 在搜索實(shí)例的 dataimport 出現(xiàn)下圖情形即為成功
導(dǎo)入數(shù)據(jù)
第一步: 導(dǎo)入 mysql 的 jar 包 下載地址:見參考資料 5
將 jar 放置到{solr 安裝路徑}/dist 目錄下,
在{solr 安裝路徑}/server/solr/test/conf/solrconfig.xml 加入如下代碼
lib dir= ${solr.install.dir:../../../..}/dist/ regex= mysql.*\.jar /
第二步: 驗(yàn)證配置(配置見第六點(diǎn))
如果顯示 indexing completed. Added/Updated: 1847 documents. Deleted 0 documents
documents 的個(gè)數(shù)大于 0 說(shuō)明我們成功導(dǎo)入 x 條數(shù)據(jù)到 solr 中
設(shè)置 field 的索引方式
查詢
更新索引
刪除索引
優(yōu)化
定時(shí)完整數(shù)據(jù)重新導(dǎo)入
crontab -e
curl -d command=full-import clean=true commit=true optimize=true wt=json indent=true verbose=false debug=false http://ip:port/solr/{core 名稱}/dataimport
14. 增量導(dǎo)入數(shù)據(jù)配置
修改 db-data-config.xml 添加 deltaQuery、deltaImportQuery、pk 三個(gè)屬性
1.pk 設(shè)置主鍵字段名稱,該字段必須在 managed-schema 配置過 uniqueKey 字段名 /uniqueKey
2.deltaQuery 該屬性用于查詢主鍵字段值
3.deltaImportQuery 該屬性用于查詢需要被索引的所有字段的 sql
dataConfig
dataSource driver= com.mysql.jdbc.Driver url= jdbc:mysql://127.0.0.1:3306/appfamecms user= 1 password= 1 /
document name= articles
entity name= cms_article query= select id,title,content,create_time from cms_article pk= id deltaQuery= select id from cms_article where id ${dataimporter.delta.id} deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id}
field column= id name= id /
field column= title name= title /
field column= content name= content /
field column= create_time name= create_time /
/entity
/document
/dataConfig
15. 配置定時(shí)數(shù)據(jù)更新
16. 搜索詞建議
https://cwiki.apache.org/confluence/display/solr/Suggester
更新中~~~
錯(cuò)誤信息:
1. 配置好的 solr 沒有任何數(shù)據(jù),啟動(dòng)時(shí)報(bào)錯(cuò):SolrException: Invalid Number: MA147LL/A
這不是你的錯(cuò),你可能是把 solr schema.xml 的 id 設(shè)置成了 int 類型,設(shè)置成 int 類型沒什么錯(cuò),但是 solr 啟動(dòng)是會(huì)掃描 conf 目錄下的 elevate.xml 文件,這個(gè)文件中定義的 id 值是 MA147LL/ A 所以就會(huì)出現(xiàn)異常 SolrException: Invalid Number: MA147LL/A
解決問題的方法是修改 elevate.xml 文件,將其中的 id 值設(shè)置為數(shù)字,就可以了。
dataConfig
dataSource driver= com.mysql.jdbc.Driver url= jdbc:mysql://127.0.0.1:3306/appfamecms user= 1 password= 1 /
document name= articles
entity name= cms_article query= select id,title,content,create_time from cms_article pk= id deltaQuery= select id from cms_article where id ${dataimporter.delta.id} deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id}
field column= id name= id /
field column= title name= title /
field column= content name= content /
field column= create_time name= create_time /
/entity
/document
/dataConfig
2. 全量導(dǎo)入數(shù)據(jù)報(bào):
Caused by: java.sql.SQLException: Illegal value for setFetchSize().
在 db-data-config.xml 的 dataSource 標(biāo)簽添加 batchSize 屬性并賦值 - 1 即可,修改后的內(nèi)容
dataConfig
dataSource driver= com.mysql.jdbc.Driver url= jdbc:mysql://127.0.0.1:3306/appfamecms user= 1 password= 1 batchSize= -1 /
document name= articles
entity name= cms_article query= select id,title,content,create_time from cms_article pk= id deltaQuery= select id from cms_article where id ${dataimporter.delta.id} deltaImportQuery= select id,title,content,create_time from cms_article where id={$dataimporter.delta.id}
field column= id name= id /
field column= title name= title /
field column= content name= content /
field column= create_time name= create_time /
/entity
/document
/dataConfig
到此,關(guān)于“solr 增量導(dǎo)入數(shù)據(jù)怎么配置”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!