国产精品自拍视频_能直接看的一级欧美毛片_美女福利视频在线观看免费视频_草莓视频成人在线观看

ThinkPHP中如何使用coreseek(sphinx)

時(shí)間:2015-04-28 來(lái)源:

本次天津網(wǎng)站設(shè)計(jì)——文率科技技術(shù)貼向大家分享thinkphp調(diào)用sphinxapi的一段小代碼

首先我們把coreseek下載好,命名為coreseek,我們找到coreseek/etc中的csft_mysql.conf修改這個(gè)配置文件

#源定義
source lemai
{
type                    = mysql

sql_host                = localhost
sql_user                = root
sql_pass                = 123
sql_db                    = lemai
sql_port                = 3306
sql_query_pre            = SET NAMES utf8

sql_query                = SELECT id, title,content,name FROM shop
#sql_query⑴列id需為整數(shù)
#title、content作為字符串/文本字段,被全文索引
sql_attr_uint            = sid           #從SQL讀取到的值必須為整數(shù)
sql_attr_timestamp        = time #從SQL讀取到的值必須為整數(shù),作為時(shí)間屬性

sql_query_info_pre      = SET NAMES utf8                                        #命令行查詢時(shí),設(shè)置正確的字符集
sql_query_info            = SELECT * FROM shop WHERE name=$id #命令行查詢時(shí),從數(shù)據(jù)庫(kù)讀取原始數(shù)據(jù)信息
}

#index定義
index lemai
{
source            = lemai             #對(duì)應(yīng)的source名稱
path            = var/data/mysql #請(qǐng)修改為實(shí)際使用的絕對(duì)路徑,例如:/usr/local/coreseek/var/...
docinfo            = extern
mlock            = 0
morphology        = none
min_word_len        = 1
html_strip                = 0

#中文分詞配置,詳情請(qǐng)查看:http://www.coreseek.cn/products-install/coreseek_mmseg/
#charset_dictpath = /usr/local/mmseg3/etc/ #BSD、Linux環(huán)境下設(shè)置,/符號(hào)結(jié)尾
charset_dictpath = C:/AppServ/www/thinkphp/ThinkPHP/Extend/Vendor/Coreseek/etc/                             #Windows環(huán)境下設(shè)置,/符號(hào)結(jié)尾,較好給出絕對(duì)路徑,例如:C:/usr/local/coreseek/etc/...
charset_type        = zh_cn.utf-8
#charset_table      =
ngram_len            = 0
}

#全局index定義
indexer
{
mem_limit            = 128M
}

#searchd服務(wù)定義
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  #請(qǐng)修改為實(shí)際使用的絕對(duì)路徑,例如:/usr/local/coreseek/var/...
log = var/log/searchd_mysql.log        #請(qǐng)修改為實(shí)際使用的絕對(duì)路徑,例如:/usr/local/coreseek/var/...
query_log = var/log/query_mysql.log #請(qǐng)修改為實(shí)際使用的絕對(duì)路徑,例如:/usr/local/coreseek/var/...
}



然后把coreseek拷貝一份到thinkphp的核心文件Extend/Vendor下.

打開cmd  cd到coreseek

 

bin\indexer -c etc\csft_mysql.conf (mysql,等)數(shù)據(jù)庫(kù)名 創(chuàng)建索引

創(chuàng)建完之后我們可以在var\data下看到一堆文件,此時(shí)說(shuō)明創(chuàng)建成功

 

bin\searchd -c etc\csft_mysql.conf --console   啟動(dòng)進(jìn)程

(檢查端口9312是否有這個(gè)進(jìn)程,有就OK)

 

 

命令行查詢

echo 一號(hào)店 |iconv -f gbk -t utf-8 | search -c etc\csft_mysql.conf --stdin | iconv -f utf-8 -t gbk     中文索引查詢

然后就可以在控制器中進(jìn)行PHP連接sphinxapi進(jìn)行測(cè)試了



Vendor('Coreseek.api.sphinxapi');
//加載第三方擴(kuò)展包的文件  文件名不包含class

$db = new PDO('mysql:host=localhost;port=3306;dbname=lemai', 'root', '123', array( PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8'));
//實(shí)例化PDO

$spx = new SphinxClient();
//實(shí)例化SphinxClient

$spx -> SetServer('127.0.0.1',9312);
$spx->SetConnectTimeout ( 3 );
$spx->SetArrayResult ( true );
$spx -> SetMatchMode(SPH_MATCH_ANY);
$result = $spx -> query('1','*');
$ids = join(",",array_keys($result['matches']));
$sql = "SELECT * FROM shop where id in ({$ids})";
$stmt = $db->query($sql);
$r = $stmt->FETCHALL(PDO::FETCH_ASSOC);
echo "

";
var_dump($r);
本文摘自天津網(wǎng)站設(shè)計(jì)——文率科技技術(shù)總監(jiān)韓文博的新浪博客。我們的官網(wǎng)上還有《ThinkPHP的關(guān)聯(lián)Model要注意的幾點(diǎn)》如果你需要了解這方面的知識(shí)可以點(diǎn)擊我們的官網(wǎng)http://codepolly.com

聯(lián)絡(luò)方式:

中國(guó) · 天津市河西區(qū)南京路35號(hào)亞太大廈1403室
電話:15620613686
郵編:300220