資源描述:
《2配置SPHINX自動(dòng)更新數(shù)據(jù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、sphinx自動(dòng)更新在使用SPHINX生成索引時(shí)只會(huì)為當(dāng)前數(shù)據(jù)庫(kù)中的數(shù)據(jù)生成索引,生成索引之后如果在數(shù)據(jù)庫(kù)中又添加了新的數(shù)據(jù)那么在SPHINX是無(wú)法搜索到新的數(shù)據(jù)的,需要把新的數(shù)據(jù)也生成索引并添加到SPHINX屮去才行。如果每次插入新的數(shù)據(jù)之后都要手動(dòng)再重建索引太麻煩了,所以我們一般要配置SPHINX每隔一段時(shí)間自動(dòng)把數(shù)據(jù)庫(kù)屮最新插入的數(shù)據(jù)重新新的索引文件,并把這個(gè)新的索引文件合并到主索引文件上。實(shí)際操作:1.每次生成索引文件之后,要把最后一條記錄的ID保存下來(lái),下次ID大于這個(gè)ID就是新的數(shù)據(jù)a.建一張表用來(lái)保存這個(gè)ID
2、術(shù)相奮9
3、browser1createtablesphinx_id2(3max_idintunsignednotnu丄丄commentT已經(jīng)創(chuàng)建好索引的最后一條記錄的IDT,4);5INSERTINTOsphinx_iciVALUES(0);b.配置SPHINX讓每次生成索引之后能夠直接把最大的ID更新進(jìn)來(lái)20sql_attr_uirrt=shop_price21sql_attjuint=addtime22sql_attjuint=pl23sql_auint=xl24#^SPHINX取出數(shù)據(jù)之后會(huì)執(zhí)行的SQL語(yǔ)句-一二25-sql_query
4、_post=UPDATEsphinx_idSETmax_id=(SELECTMAX(id)FROMphp34_goods)26}~J?一2.定期為新添加的數(shù)據(jù)生成索引a.修改sphinx定義一個(gè)新的數(shù)據(jù)源(新插入的還沒(méi)有創(chuàng)建索引的數(shù)據(jù))6■7901234567=mysql=localhost=root#新插入(還沒(méi)有創(chuàng)建素引的)的數(shù)據(jù)的數(shù)據(jù)源sourcegoods_delta=php34=3306=SETNAMESutf8typesql_hostsql_usersqlpasssql_dbsql_portsql_query_pre#反
5、出還沒(méi)有創(chuàng)建素引的數(shù)據(jù)sql_query=SELECTa.id,a?goods_name,a?shop_pricsa?addtime,IFNULL(GROUP_CONCAT(b?attr_value)J■)attr_value,(SELECTCOUNT(c.id)FROMphp34_commentcWHEREa.id=c.goods_id)pl,(SELECTIFNULLCSUMCd.goods^number),?)FROMphp34_order_goodsdLEFTJOINphp34_ordereONd.order_id=e.id
6、WHEREe.pay_status=lANDd.goods_id-a.id)xlFROMphp34_goodsaLEFTJOINphp34_goods_attrbONa.id=b.goods_idWHEREa.is_on_sale=lANDa.is_delete=0ANDa.id>(SELECTmax_idFROMsphinx_id)GROUPBYa.idJ#定義矗性:用來(lái)排序*sql_attr_uint=shop_pricesql_attr_uint=addtimesql_attr_uint=plsql_attr_uint=xl#
7、^SPHINX取出數(shù)據(jù)之后會(huì)執(zhí)行的SQL語(yǔ)句sql_query_post=UPDATEsphinx_idSETmax_id=(SELECTMAX(id)FROMphp34_goods)b.再添加一個(gè)index索引(每個(gè)數(shù)據(jù)源對(duì)應(yīng)一個(gè)index)6789012indexgoods_delta{一#對(duì)應(yīng)的source名稱34567osource;=goods_delta#SPHINX生成的素引文件存扳的目錄#注意:最后一個(gè)goods是說(shuō):素引文件名叫g(shù)oods并不是說(shuō)goods@錄path=C:czsphinxcoreseek-3
8、.2.14-win32vardatagoods_delta#請(qǐng)修改為實(shí)際使用的絕對(duì)路徑,例如:/usr/local/coreseek/var/...docinfomlockmorphologymin_word_lenripextern0none10#中文詞庫(kù)文件所在的目錄charsetdictpath=C:czsphinxcore5eek-3?2.14-win32etc#Windows環(huán)境下設(shè)置,/看號(hào)結(jié)尾,長(zhǎng)好給出絕對(duì)路徑,例如:C:/usr/local/coreseek/etc/...charset_type=zh
9、_cn.utf-8c.寫一個(gè)b過(guò)腳本,讓這個(gè)定期用新的數(shù)據(jù)源生成索引文件,并把這個(gè)索引文件合并到主索引(第一次生成的索引文件)文件上。文件(B鈿匡)1KC(Q)查肓也?B0(H)C:czsphimccoreseek-3.2.14