solr安裝筆記與定時器任務

一:solr啓動html

  目前solr最高版本爲5.5.0版本,不少solr安裝都是說將server文件copy到tomcat中,可是solr版本自帶有jetty的啓動方式java

  首先下載solr-5.5.0版本,解壓後文件目錄:mysql

  

打開readme.txt ,發現有之下的幾句話:web

告訴你使用命令行啓動的方式,本機爲windows系統,因此打開cmd(shift+郵件--->在此處打開命令端口),進入bin目錄,輸入命令solr startsql

這樣就算是啓動成功了,能夠直接在瀏覽器中輸入http://localhost:8983 查看solr管理後臺數據庫

 

二:建立solr  coreapache

 

    1.首先進入/server/solr 文件夾,建立一個文件夾,名稱爲你所建core的名稱, 這裏個人core取名爲markwindows

    2.在mark目錄下建立一個core.properties文件,裏面寫上:name=mark瀏覽器

    3.首先進入/server/solr/configsets/basic_configs,將conf目錄copy到剛纔的mark目錄下tomcat

  4.將managed-schema文件修改成schema.xml 文件,這是solr比較核心的文件,用來定義索引

 

先看看這個schema.xml文件

第一行: ,將這個name改成咱們本身的core名稱:即mark

第113行定義了id,這個能夠任意修改

167行定義了惟一主鍵,這個主鍵能夠是任意的類型和字段,但必須是惟一非空的,當有重複的時候,solr將會替換掉以前所建立的索引。

這裏是一個默認的對文本的處理,其中配置的分詞器,過濾器等。

配置上這些其實就算成功建立了一個core,能夠打開後臺,能夠看到新添加了要給core selector.

 

 三:配置solr 數據庫導入

     solr有插件能夠直接從數據庫中導入數據,並建立索引。主要使用solr-dataimporthandler-5.5.0.jar

  首先在solrhome/dist 中找到 solr-dataimporthandler-5.5.0.jar,solr-dataimporthandler-extras-5.5.0.jar,solr-core-5.5.0.jar三個包,一併copy到solrhomt/server/lib中

  在網上下載一個mysql-connector-java.jar copy到solrhomt/server/lib中

  在咱們本身的core  mark中,找到solrconfig.xml文件

  在這個文件的根節點下添加

   

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

      這是給solr服務器添加一個severlet,用來接收dataimport請求。其中配置文件data-config.xml與solrconfig.xml放在同一個目錄下

  建立一個文件data-config.xml

  配置:

  

<dataConfig>   
   <dataSource type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/morequ" user="root" password="root"/>

    <document>
        <entity name="mark" query="select id,value,type,datam_id,create_time  from mark where enable =0 " 
        deltaImportQuery="SELECT id,value,type,datam_id,create_time from mark where enable =0  and id='${dih.delta.id}'  " 
        deltaQuery="SELECT  id  from mark where enable =0 and create_time > '${dih.last_index_time}'" >
            <field column="id" name="id" />
            <field column="value" name="value" />
            <field column="type" name="type" />
            <field column="datam_id" name="datam_id" />
            <field column="create_time" name="create_time"/>
        </entity>
    </document>
</dataConfig>

        使用dataimport須要一個配置properties,存放一些變量,新建dataimport.properties 文件放在與data-config.xml文件同目錄下

  配置好重啓solr

  在後臺,咱們看到了一個新的菜單:

  

 command能夠選擇是全量更新,仍是增量更新。

  

四:配置增量更新定時任務

  當有了數據導入後,並不能實現咱們想要的功能,則須要一個定時任務的東西去定時導入增量數據:

  能夠下載apache-solr-dataimportscheduler-1.0.jar 包,

  1.將apache-solr-dataimportscheduler-1.0.jar 放在solrhome/server/solr-webapp/WEB-INF/lib裏

  注意,此包有一個問題,加載配置文件找不到

  緣由在這個文件中,

這裏給他一個指定的文件路徑:

   2. 放好jar包以後,須要配置配置文件

  下載jar的時候,若是下的是with source版本,則裏面自帶一個dataimport.properties 配置文件,

  注意,此時在solrhome/server/solr 中(注意,這裏不是jar包的存放位置webapp),建立一個conf文件夾,將dataimport.properties放在conf中

  

  若是沒有的這裏貼出來配置文件:

  

    #################################################  
    #                                               #  
    #       dataimport scheduler properties         #  
    #                                               #  
    #################################################  
      
    #  to sync or not to sync  
    #  1 - active; anything else - inactive  
    syncEnabled=1
      
    #  which cores to schedule  
    #  in a multi-core environment you can decide which cores you want syncronized  
    #  leave empty or comment it out if using single-core deployment  
    syncCores=mark
      
    #  solr server name or IP address  
    #  [defaults to localhost if empty]  
    server=localhost
      
    #  solr server port  
    #  [defaults to 80 if empty]  
    port=8983
      
    #  application name/context  
    #  [defaults to current ServletContextListener's context (app) name]  
    webapp=solr
      
    #  URL params [mandatory]  
    #  remainder of URL  
    #  增量更新的請求參數  
    params=/dataimport?command=delta-import&clean=false&commit=true
      
    #  schedule interval  
    #  number of minutes between two runs  
    #  [defaults to 30 if empty]  
    #  這裏配置的是2min一次  
    interval=2
      
    #  重作索引的時間間隔,單位分鐘,默認7200,即5天;   
    #  爲空,爲0,或者註釋掉:表示永不重作索引  
    reBuildIndexInterval=0
      
    #  重作索引的參數  
    reBuildIndexParams=/dataimport?command=full-import&clean=true&commit=true
      
    #  重作索引時間間隔的計時開始時間,第一次真正執行的時間=reBuildIndexBeginTime+reBuildIndexInterval*60*1000;  
    #  兩種格式:2012-04-11 03:10:00 或者  03:10:00,後一種會自動補全日期部分爲服務啓動時的日期  
    reBuildIndexBeginTime=03:10:00

     3.打開solrhome\server\solr-webapp\webapp\WEB-INF\web.xml

    添加一個listener:

    

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


   4.從新啓動solr,定時器任務則生效。

 

參考資料:

  http://www.cnblogs.com/atyou/archive/2013/04/21/3033675.html

相關文章
相關標籤/搜索