摘要:開始之前強烈推薦先瀏覽一下的官方文檔簡介是一個高性能全功能的全文檢索解決方案。旨在幫助一般開發(fā)者針對既有的海量數(shù)據(jù),快速而方便地建立自己的全文搜索引擎。一定要重建索引。否則不會報錯,但是搜索結(jié)果會不正確。
開始之前強烈推薦先瀏覽一下 xunsearch 的官方文檔
Xunsearch簡介Xunsearch 是一個高性能、全功能的全文檢索解決方案。
Xunsearch 旨在幫助一般開發(fā)者針對既有的海量數(shù)據(jù),快速而方便地建立自己的全文搜索引擎。
詳情點我
測試環(huán)境: Linux 服務(wù)器 2 臺:代號 | 功能 | IP | 系統(tǒng) |
---|---|---|---|
服務(wù)器A | 提供web服務(wù) | 192.168.56.2 | centos7 |
服務(wù)器B | 提供 xunsearch 后端服務(wù) | 192.168.56.3 | centos7 |
PHP版本 7.0.13 沒有安裝緩存, 生產(chǎn)環(huán)境推薦安裝緩存
PHP 7.0.13 (cli) (built: Dec 21 2016 13:53:31) ( NTS ) Copyright (c) 1997-2016 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2016 Zend Technologies with Xdebug v2.5.0, Copyright (c) 2002-2016, by Derick Rethans
連接到服務(wù)器B 運行下面指令安裝, 解壓 xunsearch 安裝包
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2 tar -xjf xunsearch-full-latest.tar.bz2
執(zhí)行安裝腳本,根據(jù)提示進(jìn)行操作,主要是輸入 xunsearch 軟件包的安裝目錄,強烈建議多帶帶 規(guī)劃一個目錄,而不是混到別的軟件目錄中。
cd xunsearch-full-1.4.10/ sh setup.sh
之后會顯示安裝的交互界面, 然后直接按下回車,安裝到默認(rèn)路徑下,
然后喝杯咖啡, 稍等一會 出現(xiàn)下面的安裝成功提示即可.
+==========================================+ | Welcome to setup xunsearch(full) | | 歡迎使用 xunsearch (完整版) 安裝程序 | +------------------------------------------+ | Follow the on-screen instructions please | | 請按照屏幕上的提示操作以完成安裝 | +==========================================+ Please specify the installation directory 請指定安裝目錄 (默認(rèn)為中括號內(nèi)的值) [/usr/local/xunsearch]: Confirm the installation directory 請確認(rèn)安裝目錄:/usr/local/xunsearch [Y/n]Y Checking scws ... no Installing scws (1.2.3) ... Extracting scws package ... Configuring scws ... Compiling & installing scws ... Checking scws dict ... no Extracting scws dict file ... Checking libuuid ... no, try to install it Extracting libuuid package ... Configuring libuuid ... Compiling & installing libuuid ... Checking xapian-core-scws ... no Installing xapian-core-scws (1.2.22) ... Extracting xapian-core-scws package ... Configuring xapian-core-scws ... Compiling & installing xapian-core-scws ... Checking libevent ... no Installing libevent (2.0.21-stable) ... Extracting libevent package ... Configuring libevent ... Compiling & installing libevent ... Extracting xunsearch package (1.4.10) ... Configuring xunsearch ... Compiling & installing xunsearch ... Cleaning ... done +=================================================+ | Installation completed successfully, Thanks you | | 安裝成功,感謝選擇和使用 xunsearch | +-------------------------------------------------+ | 說明和注意事項: | | 1. 開啟/重新開啟 xunsearch 服務(wù)程序,命令如下: | | /usr/local/xunsearch/bin/xs-ctl.sh restart | | 強烈建議將此命令寫入服務(wù)器開機腳本中 | | | | 2. 所有的索引數(shù)據(jù)將被保存在下面這個目錄中: | | /usr/local/xunsearch/data | | 如需要轉(zhuǎn)移到其它目錄,請使用軟鏈接。 | | | | 3. 您現(xiàn)在就可以在我們提供的開發(fā)包(SDK)基礎(chǔ)上 | | 開發(fā)您自己的搜索了。 | | 目前只支持 PHP 語言,參見下面文檔: | | /usr/local/xunsearch/sdk/php/README | +=================================================+
注意: 如果是生產(chǎn)環(huán)境iptables可能需要配置得嚴(yán)格,本文僅為測試
配置一下iptables, 如果你沒有啟用那么忽略本操作
vi /etc/sysconfig/iptables 加入, 下面兩行 -A INPUT -p tcp -m state --state NEW -m tcp --dport 8383 -j ACCEPT -A INPUT -p tcp -m state --state NEW -m tcp --dport 8384 -j ACCEPT 重啟iptables service iptables restart
啟動服務(wù)
/usr/local/xunsearch/bin/xs-ctl.sh -b inet start
啟動輸出內(nèi)容:
INFO: starting server[xs-indexd] ... (BIND:8383) INFO: starting server[xs-searchd] ... (BIND:8384)web服務(wù)器配置
安裝xunsearch PHP SDK
cd project/root/path composer require --prefer-dist hightman/xunsearch
創(chuàng)建項目配置文件, 一個項目對應(yīng)一個配置文件, 項目名稱不能重復(fù)
cp appvendorhightmanxunsearchappdemo.ini appconfigsearch-demo.ini
修改剛剛創(chuàng)建的文件的內(nèi)容, 其中server.index 和 server.search 的IP地址是安裝了xunsearch服務(wù)的服務(wù)器IP地址
;搜索配置文件示例 project.name = demo project.default_charset = utf-8 server.index = 192.168.56.4:8383 server.search = 192.168.56.4:8384 [pid] type = id [subject] type = title [message] type = body [chrono] type = numeric
修改 app/routes/web.php 文件, 寫入一些客戶端搜索測試代碼
###################### 測試模塊 #################### /* * 全文搜索測試部分 */ Route::get("/search/{key}", function ($key){ $xs = new XS(config_path("search-demo.ini")); $search = $xs->search; // 獲取 搜索對象 $query = $key; $search->setQuery($query) ->setSort("chrono", true) //按照chrono 正序排列 ->setLimit(20,0) // 設(shè)置搜索語句, 分頁, 偏移量 ; $docs = $search->search(); // 執(zhí)行搜索,將搜索結(jié)果文檔保存在 $docs 數(shù)組中 $count = $search->count(); // 獲取搜索結(jié)果的匹配總數(shù)估算值 foreach ($docs as $doc){ $subject = $search->highlight($doc->subject); // 高亮處理 subject 字段 $message = $search->highlight($doc->message); // 高亮處理 message 字段 echo $doc->rank() . ". " . $subject . " [" . $doc->percent() . "%] - "; echo date("Y-m-d", $doc->chrono) . "
" . $message . "
"; echo "
========
"; } echo "總數(shù):". $count; }); Route::get("/makedoc/{title}/{message}", function ($title, $message){ $xs = new XS(config_path("search-demo.ini")); $doc = new XSDocument; $doc->setFields([ "pid" => 1, "subject" => $title, "message" => $message, "chrono" => time(), ]); // 用數(shù)組進(jìn)行批量賦值 $xs->index->add($doc); });
使用瀏覽器訪問上面兩個路由來測試功能
通過訪問: http://你的域名/makedoc/標(biāo)題/... 測試生成索引
測試?yán)?
http://你的域名/makedoc/關(guān)于 xunsearch 的 DEMO 項目測試/項目測試是一個很有意思的行為! http://你的域名/makedoc/測試第二篇/這里是第二篇文章的內(nèi)容 http://你的域名/makedoc/項目測試第三篇/俗話說,無三不成禮,所以就有了第三篇
注意: 索引不是即時生效的 延遲大概在10秒左右
通過訪問: http://你的域名/search/關(guān)鍵詞 測試搜索功能
比如搜索關(guān)鍵詞 項目
1. 關(guān)于 xunsearch 的 DEMO 項目測試 [99%] - 2011-08-26 項目測試是一個很有意思的行為! ======== 2. 項目測試第三篇 [100%] - 2011-08-26 俗話說,無三不成禮,所以就有了第三篇 ======== 總數(shù):2
通過上述步驟我們就完成了一個最簡單的全文搜索例子.
如果希望了解更多詳細(xì)內(nèi)容, 請閱讀xunsearch的官方文檔.
無論是增加索引還是改變數(shù)據(jù)結(jié)果。一定要重建索引。否則不會報錯,但是搜索結(jié)果會不正確。切記!!!!! 比如: util/Indexer.php --rebuild --source=mysql://root:pass@localhost/dbname --sql="SELECT * FROM tbl_post" --project=demo參考內(nèi)容
xunsearch 官方文檔
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22310.html
摘要:最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。 最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。文檔看了半天,愣是沒看懂;看了兩天才看出來點東西,然后跟著文檔動手測試,有點理解了,總結(jié)一下 ,希望能幫助以后用到的phper. 一,安裝 wget http://www.xunsearch.com/download/xunsearch-full...
摘要:最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。 最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。文檔看了半天,愣是沒看懂;看了兩天才看出來點東西,然后跟著文檔動手測試,有點理解了,總結(jié)一下 ,希望能幫助以后用到的phper. 一,安裝 wget http://www.xunsearch.com/download/xunsearch-full...
摘要:最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。 最近公司的項目需要全文搜索的功能,網(wǎng)上有人說用迅搜可以,特地研究了下。文檔看了半天,愣是沒看懂;看了兩天才看出來點東西,然后跟著文檔動手測試,有點理解了,總結(jié)一下 ,希望能幫助以后用到的phper. 一,安裝 wget http://www.xunsearch.com/download/xunsearch-full...
摘要:引言相信很多朋友們也想擁有一個屬于自己的,可自定義數(shù)據(jù)的搜索引擎。旨在幫助一般開發(fā)者針對既有的海量數(shù)據(jù),快速而方便地建立自己的全文搜索引擎。引言相信很多朋友們也想擁有一個屬于自己的,可自定義數(shù)據(jù)的搜索引擎。可是網(wǎng)上的教程大多集中于利用SearX實現(xiàn)聚合各個公共搜索引擎的數(shù)據(jù)源,而不是用自己爬取的數(shù)據(jù)作為數(shù)據(jù)源。 而提到了如何利用自有數(shù)據(jù)建立搜索引擎的教程大多是基于ElasticSerach,...
閱讀 3288·2021-10-11 11:08
閱讀 4428·2021-09-22 15:54
閱讀 916·2019-08-30 15:56
閱讀 870·2019-08-30 15:55
閱讀 3543·2019-08-30 15:52
閱讀 1357·2019-08-30 15:43
閱讀 1939·2019-08-30 11:14
閱讀 2509·2019-08-29 16:11