程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> 解析coreseek for sphinx的使用

解析coreseek for sphinx的使用

編輯:PHP綜合

1.將下載下來的文件包解壓,重新命名為sphinx或者其他。然後放到一個比較合適的位置,一般放到d盤根目錄下面。
2.找到D:\sphinx\etc裡面的csft_mysql.conf這個文件,打開它,推薦用ue或者editplus。因為記事本打開會沒有樣式。這是因為在linux下面的文件的緣故。
3.做必要的修改。因為這個修改因表不同和你想要取的內容不同,這裡就沒有標准的,只能給個實例我的修改是這樣的:
復制代碼 代碼如下:
#源定義
source main
{
 type     = mysql
 sql_host    = 192.168.1.250
 sql_user    = root
 sql_pass    = 123456
 sql_db     = db_youxue
 sql_port    = 3306

 sql_query_pre   = SET NAMES utf8
 sql_query_pre                   = set SESSION query_cache_type = OFF #我加的
 sql_query_pre                   = replace into sph_counter select 1,max(Fid) from t_store   #我加的

 sql_query   = SELECT Fid, Ftitle, Fcontent, Fprovince,Fexamtitle, UNIX_TIMESTAMP(Fcreatetime) AS Fcreatetime FROM t_store where Fid<=(select Fmaxid from sph_counter where Fid = 1)
           #sql_query第一列id需為整數
           #title、content作為字符串/文本字段,被全文索引
 sql_attr_uint   = Fid   #從SQL讀取到的值必須為整數
 sql_attr_timestamp  = Fcreatetime      #從SQL讀取到的值必須為整數,作為時間屬性
 sql_query_info   = SELECT * FROM t_store WHERE Fid=$id  #命令行查詢時,從數據庫讀取原始數據信息
}
#index定義
index main
{
 source   = main             #對應的source名稱
 path   = var/data/mysql
 docinfo   = extern
 mlock   = 0
 morphology  = none
 min_word_len  = 1
 html_strip    = 0
 #charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux環境下設置,/符號結尾
 charset_dictpath = etc/      #Windows環境下設置,/符號結尾
 charset_type  = zh_cn.utf-8
}
#全局index定義
indexer
{
 mem_limit   = 128M
}
#searchd服務定義
searchd
{
    listen                  =   9312
 read_timeout  = 5
 max_children  = 30
 max_matches   = 1000
 seamless_rotate  = 0
 preopen_indexes  = 0
 unlink_old   = 1
 pid_file = var/log/searchd_mysql.pid
 log = var/log/searchd_mysql.log
 query_log = var/log/query_mysql.log
}
source deltaMain: main
{
 sql_query_pre = set names utf8
 sql_query = SELECT Fid, Ftitle, Fcontent, Fprovince,Fexamtitle, UNIX_TIMESTAMP(Fcreatetime) AS Fcreatetime FROM t_store where Fid>(select Fmaxid from sph_counter where Fid=1)
}
index deltaMain: main
{
 source = deltaMain
 path   = var/data/delta
}

這樣配置就可以了。
4.在命令行裡面找到sphinx的目錄。然後輸入:
bin\indexer -c etc\csft_mysql.conf
回車,這個是生成新的索引。

5.再輸入:
bin\indexer -c etc\csft_mysql.conf --all
回車,如果這裡數據大的話會等待些時間。一般10000條20秒吧。反正沒有官方說的快。再輸入:
bin\searchd -c etc\csft_mysql.conf --console 回車啟動searchd服務。這個時候可以在任務管理器的進程中找到這個searchd服務。這樣就具備了查詢的基本條件了。

6.輸入:
bin\searchd -c etc\csft_mysql.conf -a document
回車,意思是搜索包含document的所有匹配項。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved