solr dataimport 的配置


1)在solrconfig.xml增加

 <!--新增加的配置-->
   <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">


      <str name="config">data-config.xml</str>
    
    </lst>
  </requestHandler>

2)然后在solrconfig.xml同一個目錄下,即是solr home目錄下增加 data-config.xml 文件

 

<dataConfig>
    <dataSource driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/test" user="root" password="123456"/>
    <document name="movieDoc">
        <entity name="movie" transformer="RegexTransformer,DataToIntTransformer" query="select * from movie" >
        
            <field column="actors" splitBy="," sourceColName="actors"/>
            <field column="director" splitBy="," sourceColName="director"/>
         
            <entity name="type" query="select id as tid from movie_type where mid='${movie.mid}'">
                <field name="tid" column="tid" />
            </entity>
             <entity name="language" query="select id as lid from movie_language where mid='${movie.mid}'">
                <field name="lid" column="lid" />
            </entity>
             <entity name="zone" query="select id as zid from movie_zone where mid='${movie.mid}'">
                <field name="zid" column="zid" />
            </entity>
            
             <entity name="detail" query="select sub_index,title,vid  from movie_detail where mid='${movie.mid}' and chk_yn='y'">
                <field name="sub_index" column="sub_index" />
                <field name="title" column="title" />
                <field name="vid" column="vid" />
            </entity>
            <!--
            <entity name="item_category" query="select CATEGORY_ID from item_category where item_id='${item.ID}'">
                <entity name="category" query="select description from category where id = '${item_category.CATEGORY_ID}'">
                    <field column="description" name="cat" />
                </entity>
            </entity>
            -->
        
        </entity>
    </document>
</dataConfig>

3)加入相關的jar包,apache-solr-dataimporthandler-1.4.0.jar,apache-solr-dataimporthandler-extras-1.4.0.jar,mysql-connector-java-5.1.10.jar

 

啟動tomcat,訪問http://localhost:8080/solr/dataimport?command=full-import 將數據全部導入solr服務器進行索引

訪問http://localhost:8080/solr/dataimport?command=status可以查看運行狀態

當修改data-config.xml 文件配置時運行http://localhost:8080/solr/dataimport?command=reload-config可以進行重新加載配置文件

如果想終止運行http://localhost:8080/solr/dataimport?command=abort

 

 要建立自己的全文檢索,一般都需要從數據庫導入數據,在原來配置的基礎上,增加導入的功能 


1、D:\apache-tomcat-7.0.27\solr\conf\solrconfig.xml中增加 
Xml代碼    收藏代碼
  1. <requestHandler name="/dataimport" class="org.apache.solr.handler.dataimport.DataImportHandler">  
  2.     <lst name="defaults">  
  3.           <str name="config">data-config.xml</str>  
  4.     </lst>  
  5. </requestHandler>  

2、增加D:\apache-tomcat-7.0.27\solr\conf\data-config.xml,內容為數據庫的連接信息 
Xml代碼    收藏代碼
  1.   <?xml version="1.0" encoding="UTF-8"?>  
  2. <dataConfig>  
  3. <dataSource type="JdbcDataSource" driver="oracle.jdbc.driver.OracleDriver"  
  4.     url="jdbc:oracle:thin:@10.74.8.206:1521:orcl"  
  5.     user="uname"  
  6.     password="pwd"/>  
  7.   
  8. <document name="zpxx">           
  9.     <entity name="zpxx" query="select * from vw_zp_fullindex" transformer="ClobTransformer">                    
  10.                 <field column="GANG_WEI_BH"      name="GANG_WEI_BH"      />  
  11.                 <field column="GANG_WEI_MC"      name="GANG_WEI_MC"      />  
  12.                 <field column="GANG_WEI_MS"      name="GANG_WEI_MS"       clob="true"/>  
  13.                 <field column="GONG_ZU_DD_ZW"    name="GONG_ZU_DD_ZW"    />  
  14.                 <field column="QI_TA"            name="QI_TA"            />  
  15.                 <field column="YUE_XIN"          name="YUE_XIN"          />  
  16.                 <field column="ZHI_CHENG"        name="ZHI_CHENG"        />  
  17.                 <field column="GANGWEILB"        name="GANGWEILB"        />  
  18.                 <field column="COMPID"           name="COMPID"           />  
  19.                 <field column="DAN_WEI_MC"       name="DAN_WEI_MC"       />  
  20.                 <field column="DANWEIXZ"     name="DANWEIXZ"         />  
  21.                 <field column="JING_YING_FW" name="JING_YING_FW"     />  
  22.                 <field column="DAN_WEI_JJ"       name="DAN_WEI_JJ"        clob="true"/>  
  23.                 <field column="DAN_WEI_DZ"       name="DAN_WEI_DZ"       />  
  24.                 <field column="HANGYELB"     name="HANGYELB"         />  
  25.     </entity>  
  26. </document>  
  27. </dataConfig>  

因為有Clob字段,所以需要加上ClobTransformer 
3、D:\apache-tomcat-7.0.27\solr\conf\schema.xml文件中增加 
Xml代碼    收藏代碼
  1.  <!--自定義Field開始 -->  
  2.             <field name="GANG_WEI_BH"        type="string" indexed="true" stored="true" required="true"/>  
  3.             <field name="GANG_WEI_MC"        type="text" indexed="true" stored="true" />  
  4.             <field name="GANG_WEI_MS"        type="text" indexed="true" stored="true" />  
  5.             <field name="GONG_ZU_DD_ZW"      type="text" indexed="true" stored="true" />  
  6.             <field name="QI_TA"              type="text" indexed="true" stored="true" />  
  7.             <field name="YUE_XIN"            type="text" indexed="true" stored="true" />  
  8.             <field name="ZHI_CHENG"          type="text" indexed="true" stored="true" />  
  9.             <field name="GANGWEILB"          type="text" indexed="true" stored="true" />  
  10.             <field name="COMPID"         type="string" indexed="true" stored="true" />  
  11.             <field name="DAN_WEI_MC"     type="text" indexed="true" stored="true" />  
  12.             <field name="DANWEIXZ"           type="text" indexed="true" stored="true" />  
  13.             <field name="JING_YING_FW"       type="text" indexed="true" stored="true" />  
  14.             <field name="DAN_WEI_JJ"     type="text" indexed="true" stored="true" />  
  15.             <field name="DAN_WEI_DZ"     type="text" indexed="true" stored="true" />  
  16.             <field name="HANGYELB"           type="text" indexed="true" stored="true" />    
  17. <!--自定義Field結束 -->  
  18.   
  19.   <copyField source="DAN_WEI_JJ" dest="text"/><!--clob字段 -->  
  20.   <copyField source="GANG_WEI_MS" dest="text"/>  

把原有文件中id字段的required="true"去掉,否則導入的時候,會驗證id字段,其實自己在做的時候,如果其他字段沒有的話,可以刪除 
3、還要把oracle的jdbc驅動放到D:\apache-tomcat-7.0.27\webapps\solr\WEB-INF\lib 
4、http://localhost:8080/solr/dataimport?command=full-import即可以進行導入數據 
5、查詢則通過http://localhost:8080/solr/admin/進行查詢,輸入查詢字符串(Query String)"DAN_WEI_JJ:計算機"即可以查看全文檢索結果


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM