日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

solr安装笔记与定时器任务

發布時間:2024/9/20 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr安装笔记与定时器任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一:solr啟動

  目前solr最高版本為5.5.0版本,很多solr安裝都是說將server文件copy到tomcat中,但是solr版本自帶有jetty的啟動方式

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

  

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

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

這樣就算是啟動成功了,可以直接在瀏覽器中輸入http://localhost:8983 查看solr管理后臺

?

二:創建solr? core

?

??? 1.首先進入/server/solr 文件夾,創建一個文件夾,名稱為你所建core的名稱, 這里我的core取名為mark

? ? 2.在mark目錄下創建一個core.properties文件,里面寫上:name=mark

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

  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

  

  

?

轉載于:https://www.cnblogs.com/lic309/p/5254205.html

總結

以上是生活随笔為你收集整理的solr安装笔记与定时器任务的全部內容,希望文章能夠幫你解決所遇到的問題。

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