天天看點

Sphinx 配置檔案說明

一.    建立sphinx.conf檔案

其結構組成主要如下:

source 源名稱1{                //指定資料源

       一些配置

}

index 索引名稱1{

     source=源名稱1

source 源名稱2{

一些配置

index 索引名稱2{

      source=源名稱2

indexer{

mem_limit = 32m

searchd{                             //配置 searchd 守護程式本身

二.    source 源名稱 相關配置說明

type=資料庫類型(mysql 或sql);

sql_host=              資料庫主機位址(如果是外網,請確定防火牆允許連結)

sql_user=                     資料庫使用者名

sql_pass=                     資料庫密碼

sql_db=                 資料庫名稱

sql_port=               資料庫端口

sql_query_pre=      執行sql前設定的編碼 (set names utf8)

sql_query=            全文檢索要顯示的内容,據官方說法:盡可能不要使用where或groupby ,将其交給sphinx效率會更高;select 出來的字段必須包含至少一個唯一主鍵,以及全文檢索的字段 sphinx 會對select 中的 字段1 ,字段2 建立sphinx自己的索引 及 在查詢的字段中查找關鍵字

strip_html= 0/1      是否去掉html标簽

sql_attr_uint=         無符号整數屬性,可以設定多個,設定資料庫字段,設定哪個能顯示出哪個字段資料的整形來.

三.    index中配置說明

source=                 資料源名稱

path =                 索引記錄存放目錄,注:d:/sphinx/data/cg 這個的意思是 在data目錄下建立一個名為cg的檔案

       min_word_len=      索引的詞的最小長度 設為1 既可以搜尋單個位元組搜尋,越小 索引越精确,但建立索引花費的時間越長

       charset_type=        utf-8/gbk 設定資料編碼

charset_table=        字元表和大小寫轉換規則 .頻繁應用于sphinx的分詞過程

min_prefix_len =    最小字首(0)

min_infix_len =      最小中綴(1)

ngram_len =        對于非字母型資料的長度切割(預設已字元和數字切割,設定1為按沒個字母切割)

四.    searchd配置說明

port=                     sphinx的端口(9312 與 searchd.exe監聽結果一緻)

log=                      服務程序日志存放路徑,一旦sphinx出現異常,基本上可以從這裡查詢有效資訊

query_log=             用戶端查詢日志 尤為有用 它将在運作時顯示每次搜尋并顯示結果

read_timeout=        請求逾時(5)

max_children=        同時可執行的最大searchd 程序數(30)

pid_file=                程序id檔案

max_matches=              查詢結果的最大傳回數

seamless_rotate=    是否支援無縫切換,做增量索引時通常需要(0/1)

   # 在啟動運作時是否提前加載所有索引檔案 

    preopen_indexes = 0

    # 是否釋放舊的索引檔案 

    unlink_old = 1

    # mva跟新池大小(預設為1m) 

    mva_updates_pool = 1m

    # 最大允許的網絡包大小(預設8m) 

    max_packet_size = 8m

    # 每個查詢最大允許的過濾器數量(預設256) 

    max_filters = 256

    #每個過濾器最大允許的值的個數(預設4096) 

    max_filter_values = 4096

    # 每個組的最大查詢數(預設為32) 

    max_batch_queries = 32

至此 spninx.conf 配置檔案結束;注意:如果有換行 必須用反斜杠 \ 連結

五.    sphinx建立是以 及監聽

切換到 dos sphinx/bin 目錄下

1.       建立索引

indexer –c sphinx.conf 索引名稱/–all (–all參數是建立所有索引)

完成後提示如下:

total 535600 docs, 10707632 bytes

total 34.323 sec, 311958 bytes/sec, 15604.27 docs/sec

total 5 reads, 0.282 sec, 45592.6 kb/call avg, 56.4 msec/call avg

total 547 writes, 12.172 sec, 1017.0 kb/call avg, 22.2 msec/call avg

2.       建立完成後

可以執行 search [–c] sphinx.conf 搜尋内容 (-c參數:是否允許模糊搜尋)

3.       監聽端口

searchd

運作後 提示

listening on all interfaces, port=9312

accepting connections

監聽成功後 既可以運作php程式 進行 搜尋

              phpcode:

                     require(“sphinxapi.php”);              //加載類檔案

$cl=new sphinxclient();               //執行個體化類

$cl->setserver(‘localhost’,9312); //設定服務

$cl->setarrayresult(true);           //設定 顯示結果集方式

$cl->setlimits(0,10);                   //同 sql語句中的limit

$cl->setsortmode(“mode”);         //排序模式 sph_sort_attr_desc和sph_sort_attr_asc

$result=$cl->query(‘ff’,[索引名稱可選]);                 //執行搜尋

var_dump($result);                      //輸出

       注意:每次修改sphinx.conf後要重建索引.