摘要:一介紹與好處介紹本身是一個(gè)中文檢索索引技術(shù)索引主鍵唯一普通全文是俄羅斯人開(kāi)發(fā)一款速度效率非常高的索引技術(shù)是來(lái)替代全文索引的本身的全文索引技術(shù)特性表現(xiàn)一般,一般數(shù)據(jù)庫(kù)使用全文索引都不是使用本身的,都需要借助第方索引技術(shù)支持,搜索引擎百
一.sphinx介紹與好處
介紹
二.怎么使用sphinx呢??sphinx本身是一個(gè)中文檢索索引技術(shù) mysql索引: 主鍵、唯一、普通、全文(match/agaisnt)
sphinx是俄羅斯人開(kāi)發(fā)一款速度、效率非常高的索引技術(shù)sphinx是來(lái)替代mysql全文索引的
mysql本身的全文索引技術(shù)特性表現(xiàn)一般,一般數(shù)據(jù)庫(kù)使用全文索引都不是使用本身的,都需要借助第3方索引技術(shù)支持,php->mysql->sphinx> , java->oracle->lucene 搜索引擎(百度/google等)要大量使用“檢索技術(shù)”2:sphinx使用的好處:① 快速檢索用戶需要的模糊信息(替代like使用) ②
本身還有中文“分詞”的實(shí)現(xiàn),英文分詞通過(guò)”空格”區(qū)分,中文分詞通過(guò)技術(shù)實(shí)現(xiàn)(例如”匹配”,使用習(xí)慣)
sphinx是專業(yè)做數(shù)據(jù)檢索的一個(gè)技術(shù)用戶去sphinx做模糊查詢,查找“北京”相關(guān)的信息,sphinx把“北京西二旗”全部信息的“主鍵id”值給用戶返回之后,用戶通過(guò)“許多-主鍵id”值去數(shù)據(jù)庫(kù) 獲得相關(guān)的記錄信息,并返回信息。
查詢多個(gè)主鍵id信息,使用了in查詢
1:首先你需要下載sphinx功能包
具體是下載coreseek:中文+sphinx解壓壓縮文件到軟件的運(yùn)行目錄即可,路徑不能有中文和空格 下載地址:http://www.coreseek.cn/news/7/52/]
2: 為數(shù)據(jù)庫(kù)數(shù)據(jù)創(chuàng)建索引文件導(dǎo)入操作的數(shù)據(jù)表數(shù)據(jù)(5萬(wàn)條記錄)
// 注意:如果之前沒(méi)有選擇數(shù)據(jù)庫(kù),那么使用use選擇數(shù)據(jù)庫(kù)使用管理員權(quán)限的cmd
mysql > use forum ; mysql> source d:/forum.sql #確保數(shù)據(jù)導(dǎo)入成功 不然沒(méi)法建立索引
3: 做索引配置, 注意用編輯器打開(kāi),不要使用記事本sphinx.conf創(chuàng)建索引的執(zhí)行程序文件軟件目錄/bin/indexer.exe
命令:indexer.exe -c 配置文件路徑 source名稱
4:查看索引文件
4.1 使用sphinx速度對(duì)比
安裝sphinx服務(wù)使用管理員cmd執(zhí)行以下命令
searchd.exe --install -c 配置文件路徑 參數(shù)順序一定要不能顛倒。
4.2:查看并啟動(dòng)sphinx查詢服務(wù)
searchd --install -c C:wamp64incoreseek-3.2.14-win32sphinx.conf
如果安裝服務(wù)之后,不能夠正常啟動(dòng)服務(wù),可能就是安裝的時(shí)候,參數(shù)順序不對(duì)。卸載重裝
searchd.exe --delete刪除服務(wù)
php連接sphinx,需要引入api文件,進(jìn)行內(nèi)容模糊檢索查詢:
原理:php傳入關(guān)鍵字給sphinx,sphinx根據(jù)自身算法找到數(shù)據(jù)的主鍵id,mysql根據(jù)id去查詢數(shù)據(jù) 前提是主鍵必須存在哦!
代碼示例:
/** * 連接sphinx服務(wù) 進(jìn)行查詢 * @param $key 搜索的關(guān)鍵字 * @return bool|mixed */ public function linkSphinx($key) { //實(shí)列化 $cl = new SphinxClient (); $cl->SetServer("127.0.0.1", 9312); //連接sphinx服務(wù) $cl->SetConnectTimeout(3); //超時(shí)時(shí)間 $cl->SetArrayResult(true); //以數(shù)組形式返回獲得的結(jié)果 $cl->SetMatchMode(SPH_MATCH_ANY); //分詞,收集分詞任何部分檢索的結(jié)果 $cl->setLimits(0, 12); //限制獲取記錄條數(shù) //(前12個(gè)記錄信息) //索引源名稱 $index_name = "dizhi"; //$res = $cl->Query ( "被檢索的關(guān)鍵字", "索引名稱" ); $res = $cl->Query($key, $index_name); return $res; }
① 通過(guò)兩個(gè)字段查找
② 有分詞查找體現(xiàn)
獲取到maths的下標(biāo) 取到id 根據(jù)主鍵id去查詢數(shù)據(jù)
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/22423.html
摘要:簡(jiǎn)介是開(kāi)源的搜索引擎,它支持英文的全文檢索。但是往往我們要求的是中文索引,怎么做呢國(guó)人提供了一個(gè)可供企業(yè)使用的,基于的中文全文檢索引擎。 Sphinx 簡(jiǎn)介 Sphinx是開(kāi)源的搜索引擎,它支持英文的全文檢索。所以如果單獨(dú)搭建Sphinx,你就已經(jīng)可以使用全文索引了。但是往往我們要求的是中文索引,怎么做呢?國(guó)人提供了一個(gè)可供企業(yè)使用的,基于Sphinx的中文全文檢索引擎。也就是說(shuō)Cor...
摘要:簡(jiǎn)介是開(kāi)源的搜索引擎,它支持英文的全文檢索。但是往往我們要求的是中文索引,怎么做呢國(guó)人提供了一個(gè)可供企業(yè)使用的,基于的中文全文檢索引擎。 Sphinx 簡(jiǎn)介 Sphinx是開(kāi)源的搜索引擎,它支持英文的全文檢索。所以如果單獨(dú)搭建Sphinx,你就已經(jīng)可以使用全文索引了。但是往往我們要求的是中文索引,怎么做呢?國(guó)人提供了一個(gè)可供企業(yè)使用的,基于Sphinx的中文全文檢索引擎。也就是說(shuō)Cor...
摘要:簡(jiǎn)介是開(kāi)源的搜索引擎,它支持英文的全文檢索。但是往往我們要求的是中文索引,怎么做呢國(guó)人提供了一個(gè)可供企業(yè)使用的,基于的中文全文檢索引擎。 Sphinx 簡(jiǎn)介 Sphinx是開(kāi)源的搜索引擎,它支持英文的全文檢索。所以如果單獨(dú)搭建Sphinx,你就已經(jīng)可以使用全文索引了。但是往往我們要求的是中文索引,怎么做呢?國(guó)人提供了一個(gè)可供企業(yè)使用的,基于Sphinx的中文全文檢索引擎。也就是說(shuō)Cor...
閱讀 2958·2023-04-26 01:52
閱讀 3485·2021-09-04 16:40
閱讀 3641·2021-08-31 09:41
閱讀 1783·2021-08-09 13:41
閱讀 578·2019-08-30 15:54
閱讀 2972·2019-08-30 11:22
閱讀 1627·2019-08-30 10:52
閱讀 958·2019-08-29 13:24