1.說明:
sphinx是乙個基於sql的全文檢索引擎,可以結合 mysql,postgresql做全文搜尋,它可以提供比資料庫本身更專業的搜尋功能,使得應用程式更容易實現專業化的全文檢索。sphinx特別為一些指令碼語言設計搜尋api介面,如php,python,perl,ruby等,同時為mysql也設計了乙個儲存引擎外掛程式。
sphinx 單一索引最大可包含1億條記錄,在1千萬條記錄情況下的查詢速度為0.x秒(毫秒級)。sphinx建立索引的速度為:建立100萬條記錄的索引只需 3~4分鐘,建立1000萬條記錄的索引可以在50分鐘內完成,而只包含最新10萬條記錄的增量索引,重建一次只需幾十秒。
sphinx的主要特性包括:高 速索引 (在**cpu上,近10 mb/秒); 高速搜尋 (2-4g的文字量中平均查詢速度不到0.1秒); 高可用性 (單cpu上最大可支援100 gb的文字,100m文件); 提供良好的相關性排名 支援分布式搜尋; 提供文件摘要生成; 提供從mysql內部的外掛程式式儲存引擎上搜尋 支援布林,短語, 和近義詞查詢; 支援每個文件多個全文檢索域(預設最大32個); 支援每個文件多屬性; 支援斷詞; 支援單位元組編碼與utf-8編碼;
2.windows下面的安裝使用:
我們一般安裝的sphinx大多數是coreseek:
coreseek是一款基於
sphinx
開源的搜尋引擎,專門為使用者提供免費的中文全文檢索系統,
coreseek
被稱為帶有中文分詞的
sphinx,
與sphinx
不同的是
coreseek
增加了乙個帶有中文分詞的詞庫,這裡使用了coreseek 3.2.14
版本進行解講。我是在f盤下安裝的所以下面都是在f盤操作。
1>首先將coreseek-3.2.14-win32.zip 開啟解壓。
2>由於coreseek是開源產品,所以在windows下面不需要安裝,我們直接進入即可。
3>進入後我們看到如圖所示檔案:
4>進入etc
目錄開啟
csft_mysql.conf
檔案,修改檔案:
**中講的已經非常詳細了,這裡我說一下紅線標記的地方region_id都要換成你表中的主鍵id。
5>使用cmd命令列進入該目錄如圖:
輸入如下命令 開始生成索引檔案
.\bi
n\indexer.exe -c .\etc\csft_mysql.conf --all
輸入完畢之後出現如下圖所示你的索引就建立好啦!(
如圖):
輸入以下命令開啟coreseek
.\bin\searchd.exe -c .\etc\csft_mysql.conf
輸入完畢如下圖所示如果沒出任何問題你的coreseek
搜尋服務就開啟拉
安裝到這裡就結束了!!!下面給大家在php中,yii框架中使用一下。
1.php中使用:
我的環境是phpstudy
所有我放在
www目錄下我建立了乙個
sphinx
資料夾裡面放入如圖所示的兩個
php檔案:
ses.php裡面的內容如圖
:<?php
header
("content-type:text/html;charset=utf8");
include
'./sphinxapi.php'; //包含sphinxapi類
$sphinx
=newsphinxclient(); //例項化
$sphinx
->setserver('127.0.0.1',
9312
);//鏈結
$res
=$sphinx
->query("所查字段","*");//查詢的字段第二引數是你配置檔案裡面寫得規則這裡是*就會匹配所有規則
print_r
($res
);//列印資料
?>
2.yii框架操作:
首先我們把生成的索引檔案api中的sphinxapi.php放在自己yii框架中的vendor/composer。
然後在進入vendor/autoload.php檔案(如圖:)
然後在我們控制器下開始操作(如圖)
這樣我們的yii框架簡單操作sphinx就完成了。
mysql 不用斯芬克斯 全域性模糊匹配 查詢
問題是match against對中文模糊搜尋支援不是太好 新建乙個utf8 myisam型別的表並建立乙個全文索引 create table articles id int unsigned auto increment not null primary key,title varchar 200...
被解放的阿賈克斯
前一段時間做乙個系統功能,頁面用到比較多的非同步處理 ajax,所以在後台出現了類似的下面的 view code string action request action null request action replace string a1 request a1 null request a1...
ajax 原生阿賈克斯的請求步驟
原生ajax的5個請求步驟 1.初始化建立乙個xmlhttprequsest的例項物件 var xml new xmlhttprequest 2.建立連線 xml.open get http name luoxindong age 12,true 3.傳送請求 xml.send 4.設定監聽函式 x...