国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

solr與.net系列課程(八)solr中重跑索引的注意事項

2019-11-17 01:52:04
字體:
來源:轉載
供稿:網(wǎng)友

solr與.net系列課程(八)solr中重跑索引的注意事項

solr與.net系列課程(八)solr中重跑索引的注意事項

我們如果在項目中使用solr,那肯定就是把數(shù)據(jù)庫中的數(shù)據(jù)跑進solr服務器中,solr有兩種操作一種是新建索引,一種是增量索引,這里我們來說一說新建索引的一下注意事項

終止跑索引 http://192.168.0.9:8080/solr/collection1/dataimport?command=abort

開始索引 http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import

當我們第一次執(zhí)行索引時,因為solr中沒有數(shù)據(jù),所以一切都會是按照我們想象的結果發(fā)生,但當我們需要重新執(zhí)行索引的時候,在用上面的鏈接執(zhí)行,就會出現(xiàn)一個問題,執(zhí)行時是solr中的所有數(shù)據(jù)都消失了,然后在一點點的增加,這樣肯定是不行的,因為當數(shù)據(jù)量很大是,執(zhí)行一次索引要花費很長時間,這時用戶登錄你的系統(tǒng)就會發(fā)現(xiàn)你的數(shù)據(jù)不夠,會出問題的,只有執(zhí)行全部完成時數(shù)據(jù)才會完整,導致這個原因是因為solr默認的所以機制是,先移除原有的所有數(shù)據(jù)(其實是轉移到另一個位置,當索引完成時在刪除,索引異常時會回滾),然后在一條條的往里面跑,但是我們可以選擇重跑索引時不移除數(shù)據(jù),而是逐條覆蓋原有數(shù)據(jù),這樣就不會影響用戶使用的,但是會增加索引的時間,

執(zhí)行語句為 http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import&clean=false

在圖形界面如下操作:

然后我們在來說一說多表索引的問題,當我們的數(shù)據(jù)是從多張表中獲取的,如下

<dataSource driver="com.microsoft.sqlserver.jdbc.SQLServerDriver" url="jdbc:sqlserver://192.168.0.9;DatabaseName=test" user="sa" passWord="123"/>    <document name="Info">        <entity name=" test1 "  transformer="ClobTransformer" pk="id"                 query="select id, name address,phone,class,addtime from tableA"                         deltaImportQuery=" select id, name address,phone,class,addtime from tableA"                     deltaQuery="SELECT id FROM tableA where adddate > '${dataimporter.last_index_time}'">                              <field column="id"      name="id"      />                      <field column="name"      name="solrname"      />                      <field column="address "      name=“address "      />                      <field column="phone "      name="phone "      />                     <field column="class "      name="class "      />                      <field column="addtime "      name="addtime "      />          </entity><entity name=" test2 "  transformer="ClobTransformer" pk="id"                 query="select id, name address,phone,class,addtime from tableB"                         deltaImportQuery=" select id, name address,phone,class,addtime from tableB"                     deltaQuery="SELECT id FROM tableB where adddate > '${dataimporter.last_index_time}'">                              <field column="id"      name="id"      />                      <field column="name"      name="solrname"      />                      <field column="address "      name=“address "      />                      <field column="phone "      name="phone "      />                     <field column="class "      name="class "      />                      <field column="addtime "      name="addtime "      />          </entity>    </document>    </dataConfig>

這個數(shù)據(jù)源就是從tableA與tableB中獲取數(shù)據(jù),當然了,兩張表的id不能重復,否則后進來的會覆蓋先進入的數(shù)據(jù),那么當我們只想重新索引其中一張表怎么辦,

http://192.168.0.9:8080/solr/collection1/dataimport?command=full-import,這個語句會重跑所有的數(shù)據(jù)(兩個table都會重跑),其實solr是可以根據(jù)entity的name單個索引的,其他表的數(shù)據(jù)不變

方法如下:

http://192.168.0.9:8080/solr/collection1/dataimport?entity=test1&command=full-import,當然也可以加上clean=false,

圖形界面操作方式:


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 杭州市| 改则县| 涞水县| 措勤县| 吉隆县| 祁东县| 蒲城县| 精河县| 池州市| 册亨县| 平度市| 佳木斯市| 阳高县| 香港| 长兴县| 清苑县| 浮梁县| 定西市| 新龙县| 东台市| 龙山县| 麦盖提县| 栾川县| 新源县| 古田县| 洞口县| 夏邑县| 迁安市| 呼和浩特市| 康定县| 大邑县| 武穴市| 拉萨市| 大邑县| 拜泉县| 马公市| 化德县| 湘潭县| 宜川县| 务川| 马鞍山市|