最近公司的項目須要全文搜索的功能,網上有人說用迅搜能夠,特意研究了下。文檔看了半天,愣是沒看懂;看了兩天才看出來點東西,而後跟着文檔動手測試,有點理解了,總結一下 ,但願能幫助之後用到的phper.php
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2 cd xunsearch-full-1.3.0/ sh setup.sh
安裝過程當中會提示輸入安裝目錄(如:/usr/local/xunsearch),或選默認的;若是提示缺乏什麼軟件,則根據提示安裝就行。mysql
安裝完以後,進入到安裝目錄執行sql
cd /usr/local/xunsearch
執行數據庫
bin/xs-ctl.sh restart
強烈建議您將此命令添加到開機啓動腳本中,以便每次服務器重啓後能自動啓動搜索服務程序, 在 Linux 系統中您能夠將腳本指令寫進 /etc/rc.local 便可。服務器
/usr/local/xunsearch/sdk/php/util/RequiredCheck.php
在/usr/local/xunsearch/sdk/php/app目錄下有個demo.ini,也能夠本身新建或重命名。這就是一個索引庫,打開後如圖app
裏面的id,title,intro就是要導入的數據庫裏某個表的字段,每一個字段下面的type表示迅搜裏的字段類型,有如下幾種:ide
根據實際狀況選擇。 假設如今有個商品表goods,在使用迅搜搜索商品時,須要先把goods表要搜索的字段導入到demo.ini中測試
/usr/local/xunsearch/sdk/php/util/Indexer.php --rebuild --source=mysql://root:password@localhost/dbname --sql="SELECT id,title,intro FROM goods" --project=demo
require_once '/usr/local/xunsearch/sdk/php/lib/XS.php'; $xs = new \XS('demo'); // 自動使用 /usr/local/xunsearch/sdk/php/app/demo.ini 做項目配置文件 $docs = $xs->search->search('山地車'); //搜索山地車 //獲取搜索結果 $result=array(); foreach ($docs as $doc) { $arr=array(); $arr['id']=$doc->id; $arr['title']=$xs->search->highlight($doc->title); $arr['intro']=$doc->intro; $result[]=$arr; } print_r($result);
上面就是最簡單的單表搜索,但既然是全文索引,那就是能夠搜索多個表,至於多個表怎麼使用,有人說將多個表的內容保存在一個臨時表內,而後將臨時表的信息導入到索引庫,不過還沒試過。查了下,可使用mysql的視圖來解決。詳細的文檔能夠參考官網的 http://www.xunsearch.com/doc/...ui