XunSearch的使用
一、項目的配置文件
1、要想使用xunsearch,首先需要進行配置文件的配置。
默認目錄在app下,如下面的結(jié)構(gòu),每一個搜索項目都需要有一個ini文件進行相應的配置。
?
舉例:
project.name = novel project.default_charset = utf-8 server.index = 8383 server.search = 8384[novel_id] type = id[title] type = title[author_name][description] type = body[last_time] type = date?
2、每個字段用一個區(qū)段配置來表示,中括號內(nèi)的名字即為字段名。每個項目包含若干個字段,具體由項目搜索需求決定,并不需一味的與實際源數(shù)據(jù)庫 (如 MYSQL) 一致,而只需要設(shè)計搜索功能所涉及的字段即可。
?
3、這里為了安全起見,我同樣對查詢出的數(shù)據(jù)起了別名,進而一一對應xunsearch中ini文件定義的字段(第三部分可以看到)。
?
chm手冊下載地址:http://www.xunsearch.com/site/download/xs_php_manual.chm
建議如果初次使用xunsearch,則從手冊最開始跟著操作一遍。尤其是新手上路部分。
注:在線生成編輯配置文件ini?http://www.xunsearch.com/tools/iniconfig
?
二、生成骨架文件【建議最好執(zhí)行這步,節(jié)省很多開發(fā)時間】
文檔地址:http://www.xunsearch.com/doc/php/guide/util.skel
?
三、從數(shù)據(jù)庫查詢出需要的數(shù)據(jù),并且將數(shù)據(jù)添加到xunsearch索引數(shù)據(jù)庫
這里,我是在我外層定義了一個php文件來完成添加數(shù)據(jù)到XunSearch索引數(shù)據(jù)庫的操作,代碼如下
<?php //require '/data/xun/lib/XS.php'; require './lib/XS.php';$XS = new XS('novel');// 建立 XS 對象,項目名稱為:novel $index = $XS->index; // 獲取 索引對象//創(chuàng)建pdo對象,并從表中讀出需要的數(shù)據(jù) $dsn = "mysql:dbname=test;host=127.0.0.1"; $pdo = new PDO($dsn,'root','123456'); $sql = "select comic_id as novel_id,name as title,pen_name as author_name,description,last_verify_time as last_time from front_comic"; $stmt = $pdo->query($sql); $data = $stmt->fetchAll(2);//循環(huán)添加數(shù)據(jù)到XunSearch索引庫 foreach ($data as $v){// 創(chuàng)建文檔對象$doc = new XSDocument();$doc->setFields($v);// 添加到索引數(shù)據(jù)庫中$res = $index->add($doc); }$res = $res ? 'success' : 'fail'; echo $res;執(zhí)行a.php文件,則從數(shù)據(jù)庫查詢出來的數(shù)據(jù)就添加到XunSearch索引數(shù)據(jù)庫中了。
?
四、演示效果
這里,訪問之前我們生成的對應的骨架文件就可以看到效果了。
到這里,基本的全文檢索就已經(jīng)實現(xiàn)了。
總結(jié):
1、XunSearch全文檢索的原理就是將mysql數(shù)據(jù)庫中的我們需要的數(shù)據(jù)查詢出來,并一一對應的添加到XunSearch的索引數(shù)據(jù)庫中,然后,用戶在前端查詢的時候,就直接查詢的是Xunsearch索引數(shù)據(jù)庫中的內(nèi)容了。這樣,可以說速度就變得非常非常快了。
2、在項目中引入XunSearch或者sphinx等全文檢索工具,則會大大降低mysql的壓力,并且能夠更快速的檢索出用戶需要的數(shù)據(jù),無疑體驗會更加好。
3、XunSearch索引數(shù)據(jù)庫的文件默認存儲在/usr/local/xunsearch/data/項目名 中,每一個項目有自己獨立的一個存儲庫,如下:
4、進入novel項目的存儲庫,我們可以看到三個文件,一個是存儲數(shù)據(jù)的,一個是存儲日志的,一個是存儲搜索記錄的
?
?
值得注意的是:在測試演示效果的時候,由于xunsearch數(shù)據(jù)庫并不是你這邊剛提交完,那邊數(shù)據(jù)就直接更新了,而是異步的(默認大概每兩個小時才更新一次),所以,為了更快速的看到效果,我們需要手動去刷新,如下:
util/Indexer.php --flush-log novel
?
總結(jié)
以上是生活随笔為你收集整理的XunSearch的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: XunSearch的安装和加入服务器开机
- 下一篇: 申请成为qq互联个人开发者步骤(注意事项