Solr自動更新索引

2021-10-09 04:52:05 字數 2421 閱讀 8204

幾年前在整合solr版本4.x和6.x 時,曾搞過定時自動更新索引的功能;時過境遷,這次基於solr8.5.1版,來搞 定時自動更新索引的功能,順便做個筆記,省得下次又需要採坑

本文solr版本基於8.5.1

具體思路:通過定時器定時呼叫 resultful介面,從而讓solr定時更新索引. 這裡是不是有疑問,

這個可以從solr的管理介面得到答案,看下面

當執行匯入資料生成索引操作時,管理介面是通過resultful方式來呼叫介面,從而讓solr服務去匯入資料並更新索引

當然也可以不用全量匯入資料,資料多的情況下,每次全量匯入,那耗時又耗記憶體,這時看到介面, 有個可選項的delta-import,這是執行增量匯入的

以上就是solr定時更新索引在管理介面的的大致實現思路,知道了實現思路,那我們也就可以在自家專案裡 實現定時更新索引

>

>

listener-class

>

listener

>

5.開啟 solr_home\collectiona\conf\solr-data-config.xml檔案, 可能你的solr_core配置中 不是solr-data-config這個名稱,貌似是版本差異,名稱也不一樣,有的版本是data-config這個名稱.

新增如下,都是用於增量更新的配置,deltaquery屬性和deltaimportquery屬性,這裡有個必須的字段,就是資料表中必須有個用於標註時間的字段

ps: 假設我上一次更新的時間是2019.12.02,那我下次增量更新就得拿這個時間,這個時間是存在solr_home\collectiona\conf\dataimport.properties檔案內的last_index_time屬性的,拿這個時間去資料庫 跟 這個標註時間的字段進行比較,在上一次更新時間之後的資料,全都是本次進行增量更新的資料.

>

name

="solrdb"

type

="jdbcdatasource"

driver

="com.mysql.jdbc.driver"

url="jdbc:mysql:"

user

="admin"

password

="123456"

/>

>

"id"

datasource

="solrdb"

name

="z_solr_test"

query

="select id, name, content, update_time from z_solr_test"

deltaimportquery

="select id, name, content, update_time from z_solr_test where id='$'"

deltaquery

="select id, name, content, update_time from z_solr_test where update_time >'$'

">

column

="id"

name

="id"

/>

column

="name"

name

="name"

/>

column

="content"

name

="content"

/>

column

="update_time"

name

="update_time"

/>

entity

>

document

>

dataconfig

>

如此這般,就完成solr定時自動更新的功能,此時當我在資料庫增加一條記錄,solr就會定時自動生成索引, 解放雙手的時刻到了~~

疑問在solr_home/conf目錄裡的dataimport.properties檔案有什麼用?

這個可以看下原始碼部分,這裡面的配置都會被讀取,最後拼接成resuful介面的方式,如下截圖

自動更新原理

安裝補丁的時候,客戶端的主程式一般是要關閉的,除非採用動態解除安裝 調入元件的技術,比如網路遊戲,就是盡量讓玩家邊玩遊戲邊更新。人們嫌這樣的公升級仍然太麻煩,後來出現了b s結構,大家像抓住了救命稻草一樣的追捧至今,希望能從這些勞動中解脫出來。b s結構就是瀏覽器 伺服器結構,它所有的功能,都是在瀏...

自動更新元件

一些說明 自動更新幾乎每個程式都有。而自動更新的基本方法就是 1.比較本地版本與伺服器上的版本,做出是否需要更新的判斷 配置檔案的格式如下 xml version 1.0 encoding gb2312 configmodel xmlns xsi xmlns xsd ver 2.0ver 版本號 p...

自動更新元件

一些說明 自動更新幾乎每個程式都有。而自動更新的基本方法就是 1.比較本地版本與伺服器上的版本,做出是否需要更新的判斷 配置檔案的格式如下 xml version 1.0 encoding gb2312 configmodel xmlns xsi xmlns xsd ver 2.0ver 版本號 p...