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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

solr4.2增量索引之同步(修改,删除,新增)--转载

發(fā)布時(shí)間:2025/4/5 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 solr4.2增量索引之同步(修改,删除,新增)--转载 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原文地址:http://www.jiancool.com/article/12743229775/;jsessionid=14E9B3F1BB33399799884B5C8F15DDE1

?solr增量索引配置?
1.在進(jìn)行增量索引前,首先要弄懂幾個(gè)必要的屬性,以及數(shù)據(jù)庫(kù)建表事項(xiàng),和dataimporter.properties?
?????????????????? data-config.xml里面的數(shù)據(jù)?
? <!--? transformer 格式轉(zhuǎn)化:HTMLStripTransformer 索引中忽略HTML標(biāo)簽?? --->?
? <!--? query:查詢數(shù)據(jù)庫(kù)表符合記錄數(shù)據(jù)?? --->?
? <!--? deltaQuery:增量索引查詢主鍵ID??? --->??? 注意這個(gè)只能返回ID字段?
? <!--? deltaImportQuery:增量索引查詢導(dǎo)入數(shù)據(jù)? --->?
? <!--? deletedPkQuery:增量索引刪除主鍵ID查詢? ---> 注意這個(gè)只能返回ID字段?
?????????????????? 數(shù)據(jù)庫(kù)配置注意事項(xiàng)?
1.如果只涉及添加,與修改業(yè)務(wù),那么數(shù)據(jù)庫(kù)里只需額外有一個(gè)timpstamp字段?
就可以了,默認(rèn)值為當(dāng)前系統(tǒng)時(shí)間,CURRENT_TIMESTAMP(筆者的數(shù)據(jù)為mysql的)?
2.如果還涉及刪除業(yè)務(wù),那么數(shù)據(jù)里就需額外再多添加一個(gè)字段isdelete,int類(lèi)型的?
用0,1來(lái)標(biāo)識(shí),此條記錄是否被刪除,當(dāng)然也可以用其他字段標(biāo)識(shí),ture或false都可以?

???????????????????????????? dataimporter.properties?
這個(gè)配置文件很重要,它是用來(lái)記錄當(dāng)前時(shí)間與上一次修改時(shí)間的,通過(guò)它能夠找出,那些,新添加的,修改的,或刪除的記錄?

?????? 下面為筆者當(dāng)時(shí)測(cè)試時(shí)的一個(gè)演示,其中添加,修改,刪除,都涉及了?

<dataConfig> <!--- 此段話配置的是一個(gè)MySQL的數(shù)據(jù)源,(數(shù)據(jù)源也可以配置在solrconfig.xml中) ---><dataSource name="mydb" type="JdbcDataSource" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/test" user="root" password="ninemax"/><document><!-- 下面分別來(lái)介紹屬性(如有錯(cuò)誤,歡迎指出) --><!-- pk="ID" 這個(gè)很有必要,因?yàn)槠渲械脑隽克饕樵冎麈IID時(shí)需要 --><!-- dataSource="mydb" 這個(gè)引用名字是引用上面數(shù)據(jù)源的名字 --><!-- name="myinfo" 這個(gè)名字必須唯一,存在多個(gè)實(shí)體時(shí) --><!-- query="select * from myinfo WHERE isdelete=0 query查詢是指查詢出表里所有的符合條件的數(shù)據(jù),因?yàn)楣P者測(cè)試的有刪除業(yè)務(wù),所以where 后面有一個(gè)限定條件isdelete=0,意思為查詢未被刪除的數(shù)據(jù)(注意這個(gè)query查詢只對(duì)第一次全量導(dǎo)入有作用,對(duì)增量導(dǎo)入不起作用)--><!--deltaQuery="select ID from myinfo where my_date > '${dataimporter.last_index_time}'" deltaQuery的意思是,查詢出所有經(jīng)過(guò)修改的記錄的ID可能是修改操作,添加操作,刪除操作產(chǎn)生的(此查詢只對(duì)增量導(dǎo)入起作用,而且只能返回ID值)--><!--deletedPkQuery="select ID from myinfo where isdelete=1" 此操作值查詢那些數(shù)據(jù)庫(kù)里偽刪除的數(shù)據(jù)的ID(即isdelete標(biāo)識(shí)為1的數(shù)據(jù))solr通過(guò)它來(lái)刪除索引里面對(duì)應(yīng)的數(shù)據(jù)(此查詢只對(duì)增量導(dǎo)入起作用,而且只能返回ID值)--><!--deltaImportQuery="select * from myinfo where ID='${dataimporter.delta.ID}'"次查詢是獲取以上兩步的ID,然后把其全部數(shù)據(jù)獲取,根據(jù)獲取的數(shù)據(jù)對(duì)索引庫(kù)進(jìn)行更新操作,可能是刪除,添加,修改(此查詢只對(duì)增量導(dǎo)入起作用,可以返回多個(gè)字段的值,一般情況下,都是返回所有字段的列)--><entity pk="ID" dataSource="mydb" name="myinfo" query="select * from myinfo WHERE isdelete=0 " deltaQuery="select ID from myinfo where my_date > '${dataimporter.last_index_time}'" deletedPkQuery="select ID from myinfo where isdelete=1" deltaImportQuery="select * from myinfo where ID='${dataimporter.delta.ID}'"><!-- 此條記錄有必要說(shuō)一下,ID指定大寫(xiě)的,與上面語(yǔ)句中的對(duì)應(yīng)起來(lái)----><field column="ID" name="id"/><field column="name" name="name"/><field column="address" name="address"/><field column="age" name="age"/><field column="my_date" name="my_date"/><field column="isdelete" name="isdelete"/></entity></document></dataConfig>

?

轉(zhuǎn)載于:https://www.cnblogs.com/davidwang456/p/4744415.html

總結(jié)

以上是生活随笔為你收集整理的solr4.2增量索引之同步(修改,删除,新增)--转载的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。