日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

solr从数据库为solr_home导入数据

發布時間:2025/3/20 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr从数据库为solr_home导入数据 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

針對5.3以后的導入數據

1. 在solr_home里添加core容器

該solr_home是安裝solr到tomcat時配置的,參見:將solr安裝到tomcat里
在該solr_home里新一個文件夾,可命名為:ims_advertiser_core。ims_advertiser_core就是core容器,當然名字可以是你自定義的其它名字。

2. 向core容器里添加conf

將solr-5.3.0\example\example-DIH\solr\solr里的conf復制到solr_home/ ims_advertiser_core里

3. 生成core.propertises配置文件


通過http://localhost:8080/solr打開solr管理界面,填寫完后點 Add Core。solr就會在solr_home/ims_advertiser_core里生成core.propertise文件

name:core.properties里的name;
instanceDir:core容器名;
dataDir:確認Add Core時,在core容器里生成的新文件夾的名字(好像是存索引的,還不清楚)
config:指定conf文件夾下的solrconfig.xml文件
schema: 指定conf文件夾下的schema.xml文件

4.配置solr_home\ims_advertiser_core\conf下的solrconfig.xml

在solrconfig.xml中加入如下配置:

<requestHandler name="/dataimport" class="solr.DataImportHandler"><lst name="defaults"><str name="config">solr-data-config.xml</str></lst></requestHandler>

5. 配置xx-data-config.xml文件(存在則不需要)

該文件與solrconfig.xml在同一目錄下,一般名為solr-data-config.xml。配置如下:

<dataConfig><!--mysql數據庫配置,oracle的在后面的網頁資料里有講到 --><dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://192.168.2.195:3306/agx?useUnicode=true&amp;characterEncoding=UTF-8&amp;autoReconnect=true" user="agxadmin" password="agxadmin" /> <document><!-- 配置javabean與主鍵,以及完全索引查詢語句--><entity name="advertiser" pk="advertiserId" query="select u.id,u.userName,u.disabled,a.advertiserId,a.deputy,a.companyName,a.shortName,a.companyPhone,a.companyAddress,a.webSite,a.advertiserType,a.contactName,a.contactDuty,a.contactEmail,a.contactPhone,a.contactWechat,a.contactQQ from agx_advertiser a,agx_user u where a.userId=u.id"><!-- 字段配置--><field column="id" name="id" /><field column="userName" name="userName" /><field column="disabled" name="disabled" /> <field column="advertiserId" name="advertiserId" /> <field column="deputy" name="deputy" /><field column="companyName" name="companyName" /><field column="shortName" name="shortName" /><field column="companyPhone" name="companyPhone" /><field column="companyAddress" name="companyAddress" /><field column="webSite" name="webSite" /> <field column="advertiserType" name="advertiserType" /><field column="contactName" name="contactName" /><field column="contactDuty" name="contactDuty" /><field column="contactEmail" name="contactEmail" /><field column="contactPhone" name="contactPhone" /><field column="contactWechat" name="contactWechat" /><field column="contactQQ" name="contactQQ" /></entity></document> </dataConfig>

6. 進入solr界面,執行導入數據

7.配置schema.xml控制查詢內容

第6步執行后,去query里查全部時,并沒有查到數據,只有id(且該id還不是我們需要的)。這是因為還未配置D:\solr_home\ims_advertiser_core\conf里的schema.xml文件
1):添加字段:這兒只顯示advertiser這個javabean里的advertiserId和shortName字段

<field name="advertiserId" type="int" indexed="true" stored="true" multiValued="false" /> <field name="shortName" type="string" indexed="false" stored="true" multiValued="false" />

2):建議建立一個拷貝字段,將所有的 全文本 字段復制到一個字段中,以便進行統一的檢索。

<copyField source="advertiserId" dest="text" maxChars="25000" /><copyField source="shortName" dest="text" maxChars="500" />

3):更改

<uniqueKey>advertiserId</uniqueKey>

schema.xml的配置講解參見:schema.xml詳解

導入數據網頁資料:有war包

一. 數據導入(DataImportHandler-DIH)
DIH 是solr 提供的一種針對數據庫、xml/HTTP、富文本對象導入到solr 索引庫的工具包。這里只針對數據庫做介紹。
A、準備以下jar包
apache-solr-dataimporthandler-4.0.0.jar
apache-solr-dataimporthandler-extras-4.0.0.jar
apache-solr-dataimportscheduler-1.1.jar(增量導入使用)
數據庫對應的jdbc驅動包這里使用的是Oracle oracle10g.ja放入Tomcat6.0.36/webapps/sol/WEB-INF/lib 中

B、配置solr_home下的solrconfig.xml
在solrconfig.xml中加入如下配置:

<requestHandlername=”/dataimportclass=”org.apache.solr.handler.dataimport.DataImportHandler”> <lst name=”defaults”> <str name=”config”>xx-data-config.xml</str> </lst> </requestHandler>

C、配置數據源
在與solrconfig.xml文件同級的目錄中建立上述配置中的xx-data-config.xml文件,配置如下

query屬性為全導入的時候使用。其他為增量導入使用。

<?xml version=”1.0″ encoding=”UTF-8″ ?> <dataConfig> <dataSource type=”JdbcDataSource” driver=”oracle.jdbc.driver.OracleDriver” url=”jdbc:oracle:thin:@192.168.0.129:1521:orcl” user=”username” password=”password”/> <document> <entity name=”business_info” pk=”ID” query=”select t.ID id,business_name,bussiness_type from business tdeltaImportQuery=”select t.ID id,business_name,bussiness_type from business t where id=’${dataimporter.delta.ID}’” deltaQuery=”select t.ID id,business_name,bussiness_type from business t where to_char(updatetime,’yyyy-mm-dd hh24:mi:ss’)> ‘${dataimporter.last_index_time}’”> <field column=”ID” name=”id”/> </entity> </document> </dataConfig>

至此所有DIH的配置完成,在瀏覽器中輸入命令:
全導入:
http://localhost:8085/solr/core0/dataimport?command=full-import&commit=ture
增量導入:
http://localhost:8085/solr/core0/dataimport?command=delta-import&clean=false&commit=ture
查看導入狀態
http://localhost:8085/solr/core0/dataimport?command=status
D、處理CLOB字段

<entity name=”meta” query=”select id,filename,content,bytes from documentstransformer=”ClobTransformer”> <field column=”ID” name=”id” /> <field column=”CONTENT” name=”CONTENT” clob=”true” /> </entity>

ClOB 字段的 column 必須大寫!!
E、DIH內存溢出錯誤
在使用DIH時,容易報內存溢出錯誤??梢酝ㄟ^設置jvm大小來解決。設置方法如下:
在tomcat\bin\startup.bat 加入SET JAVA_OPTS=-Xms128m -Xmx1024m 配置 這里設置的是1024M,根據情況可以適量增大
F、自動全導入和自動增量導入
此功能可以自己寫程序實現,也可利用apache-solr-dataimportscheduler-1.0.jar包完成此功能。配置如下:
修改solr.war中WEB-INF/web.xml, 在servlet節點前面增加:

<listener> <listener-class> org.apache.solr.handler.dataimport.scheduler.ApplicationListener </listener-class> </listener>

將apache-solr-dataimportscheduler-.jar 中 dataimport.properties 取出并根據實際情況修改,然后放到 solr.home/conf (不是solr.home/core/conf) 目錄下面
具體配置可參考:http://code.google.com/p/solr-dataimport-scheduler/

總結

以上是生活随笔為你收集整理的solr从数据库为solr_home导入数据的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。