[Xunsearch PHP-SDK](http://www.xunsearch.com) v1.4.8 權威指南
1. [安裝、升級 Xunsearch](#)
1. [安裝 PHP-SDK](#)
1. [檢測 PHP-SDK 的運行條件](#)
1. [完全刪除 Xunsearch](#)
1. [從 Git 源碼倉庫安裝](#)
# 安裝
Xunsearch PHP-SDK 是與 `xunsearch` 后端服務協同工作的,所以后先必須先在您的服務器上安裝服務端,服務器操作系統要求必須是 `Linux`、`BSD` 或其它類 `UNIX` 系統,同時安裝了`gcc`、`make` 等基礎編譯環境。
### 1. 安裝、升級 Xunsearch[?]()
> **Tip:** 即便您之前已經安裝過 `xunsearch`,您也可以安裝放心的使用該教程進行覆蓋安裝,會自動 完成升級操作,而**不用擔心**會刪除任何已存在的數據。我們制作的安裝腳本包含了智能檢測功能。
> 此外 `xunsearch` 的安裝和運行都不需要 `root` 權限,強烈推薦單獨設置一個系統用戶用于安裝 執行相關指令。
Xunsearch 全部開源,理論上也可以從官方提供的 [git 倉庫](https://github.com/hightman/xunsearch/ "Xunsearch 在 github 上的代碼倉庫") 獲取源碼自行構建,但是這要求必須有較多的技術基礎,在此不打算贅述,有這方面需求的技術人員可以到論壇去交流。為方便用戶安裝,我們提供了一個包含安裝所需求的全部組件的完整安裝包(含 `xapian/libevent/scws`),您只要下載并安裝此完整安裝包即可,具體操作步驟如下:
1.
運行下面指令[下載](http://www.xunsearch.com/download/xunsearch-full-latest.tar.gz "Xunsearch 最新的完整安裝包")、解壓安裝包
~~~
wget http://www.xunsearch.com/download/xunsearch-full-latest.tar.bz2
tar -xjf xunsearch-full-latest.tar.bz2
~~~
1.
執行安裝腳本,根據提示進行操作,主要是輸入 `xunsearch` 軟件包的安裝目錄,強烈建議單獨規劃一個目錄,而不是混到別的軟件目錄中。
~~~
cd xunsearch-full-1.3.0/
sh setup.sh
~~~
第一次安裝的話,過程可能會稍顯漫長,請不必著急,您大可泡杯茶一邊喝一邊等待即可。
1.
待命令運行結束后,如果沒有出錯中斷,則表示順利安裝完成,然后就可以啟動/重新啟動 `xunsearch`的后臺服務,下面命令中的 `$prefix` 請務必替換為您的安裝目錄,而不是照抄。
~~~
cd $prefix ; bin/xs-ctl.sh restart
~~~
強烈建議您將此命令添加到開機啟動腳本中,以便每次服務器重啟后能自動啟動搜索服務程序,在 `Linux` 系統中您可以將腳本指令寫進 `/etc/rc.local` 即可。
1.
有必要指出的是,關于搜索項目的數據目錄規劃。搜索系統將所有數據保存在 `$prefix/data` 目錄中。如果您希望數據目錄另行安排或轉移至其它分區,請將 `$prefix/data` 作為軟鏈接指向真實目錄。
> **Info:** 出于性能和多數需求考慮 `xunsearch` 服務端和 SDK API 通訊時沒有加密和驗證處理, 并且默認情況 `xs-ctl.sh` 啟動的服務程序是綁定并監聽在 `127.0.0.1` 上。
> 如果您的 SDK 調用和 `xunsearch` 服務端不在同一服務器,請使用 -b inet 方式啟動腳本, 并注意借助類似 `iptables` 的防火墻來控制 `xunsearch` 的 `8383/8384` 兩個端口的訪問權限。 啟動腳本用法舉例如下,以下均為合法使用方式:
~~~
bin/xs-ctl.sh -b local start // 監聽在本地回環地址 127.0.0.1 上
bin/xs-ctl.sh -b inet start // 監聽在所有本地 IP 地址上
bin/xs-ctl.sh -b a.b.c.d start // 監聽在指定 IP 上
bin/xs-ctl.sh -b unix start // 分別監聽在 tmp/indexd.sock 和 tmp/searchd.sock
~~~
### 2. 安裝 PHP-SDK[?]()
PHP-SDK 的代碼不需要另行下載,已經包含在 `xunsearch` 的安裝結果中了,在此假設您將 `xunsearch` 安裝在 `$prefix` 目錄,那么 `$prefix/sdk/php` 即是 PHP-SDK 的代碼目錄。目錄結構及功能邏列如下:
~~~
_
|- doc/ 離線 HTML 版相關文檔
|- app/ 用于存放搜索項目的 ini 文件
|- lib/XS.php 入口文件,所有搜索功能必須且只需包含此文件
\- util/ 輔助工具程序目錄
|- RequireCheck.php 用于檢測您的 PHP 環境是否符合運行條件
|- IniWizzaard.php 用于幫助您編寫 xunsearch 項目配置文件
|- Quest.php 搜索測試工具
\- Indexer.php 索引管理工具
~~~
如果您的搜索應用程序和 `xunsearch` 在同一臺服務器,則無需復制任何代碼,在開發的時候直接包含入口文件 `$prefix/sdk/php/lib/XS.php` 即可。代碼如下:
~~~
require_once '$prefix/sdk/php/lib/XS.php';
~~~
如果您在其它服務器部署前端搜索代碼,請將 SDK 代碼整個目錄復制到相應的服務器上,但并不要求放到web 可訪問目錄,考慮安全性也不推薦這么做。
> **Note:** 對于前端和后端分離的用戶來說,當 `xunsearch` 升級安裝后必須重新復制安裝后的 SDK 代碼 去覆蓋,否則可能造成版本不匹配導致錯誤。
### 3. 檢測 PHP-SDK 的運行條件[?]()
從現在開始的文檔及示范代碼中我們都假定您將 `xunsearch` 安裝在 `$prefix` 目錄中,而不再另行說明。
基礎運行條件要求 PHP 最低版本為 5.2.0,隨著功能需求的不同可能還會用到一些其它擴展,具體請在命令行環境里運行我們提供的檢測腳本。如果您的 `php` 可執行文件不在默認搜索路徑中,假設是安裝在`/path/to/bin/php` 請使用第二種方式運行。運行方式如下:
~~~
1. $prefix/sdk/php/util/RequiredCheck.php
2. /path/to/bin/php $prefix/sdk/php/util/RequiredCheck.php
3. $prefix/sdk/php/util/RequiredCheck.php -c gbk
~~~
運行結果輸出的中文編碼默認為 `UTF-8` ,如果您使用 `GBK` 環境請在運行命令最后加上 `-c GBK` 。運行結果會給出一個可視化的表格說明檢測結果,并在最終給出檢測結論,告訴您是否符合運行的基礎要求。
至此,安裝和準備工作已經完成了,您可以開始使用 *Xunsearch PHP-SDK* 開發自己的搜索應用了。
### 4. 完全刪除 Xunsearch[?]()
首先歡迎對 `xunsearch` 提出各種修改、改進建議,我們都會認真對待和處理。如果有一天您真的不再需要`xunsearch` 了,那么只要停止運行后端服務,然后完全刪除它的安裝目錄 `$prefix` 即可,整個軟件包所有涉及的文件均在該目錄下。
> **Note:** 如果您的安裝目錄沒有單獨設置,而是使用公共目錄(如:/usr/local),請勿直接刪除整個目錄。
~~~
$prefix/bin/xs-ctl.sh faststop
rm -fr $prefix
~~~
### 5. 從 Git 源碼倉庫安裝[?]()
> **Note:** 在開始安裝前,無論如何請先安裝一次最新發布的完整版本,以便將所有的運行依賴庫安裝到位。
我們的源代碼托管在 github 上。您可以直接[瀏覽代碼倉庫](https://github.com/hightman/xunsearch/ "Xunsearch 在 github 上的代碼倉庫"),也可以通過以下方式之一取得源代碼:
~~~
git clone git://github.com/hightman/xunsearch.git
git clone https://github.com/hightman/xunsearch.git
~~~
如果要編譯安裝這份源代碼,您還必須在主機環境上安裝相關的 autoconf, automake 工具,然后運行下面指令完成準備工作。
~~~
cd xunsearch/
chmod +x acprep
./acprep
~~~
在完成上述的準備工作后,接下來編譯安裝 xunsearch 就和常見的開源軟件類似,假設您的安裝目錄為 `$prefix`,然后按以下步驟操作即可:
~~~
./configure --prefix=$prefix
make
make install
~~~
$Id$
[? 關于 Xunsearch PHP-SDK](#)
[體驗 demo 項目 ?](#)
Copyright ? 2008-2011 by [杭州云圣網絡科技有限公司](http://www.xunsearch.com)
All Rights Reserved.



- 權威指南
- 新手上路
- 最新主要變動
- 概述
- 關于 Xunsearch PHP-SDK
- 安裝、升級
- 體驗 demo 項目
- 開發規范
- 開發流程
- 了解基礎對象
- 基礎對象概述
- XS 項目
- XSException 異常
- XSDocument 文檔
- XSIndex 索引管理
- XSSearch 搜索
- XSTokenizer 分詞接口
- 編寫項目配置文件
- 項目配置詳解
- 自定義分詞器
- 編寫第一個配置文件
- 管理索引
- 索引概述
- 添加文檔
- 更新、修改文檔
- 刪除文檔
- 清空索引
- 平滑重建索引
- 使用索引緩沖區
- 自定義SCWS詞庫
- 使用搜索
- 搜索概述
- 構建搜索語句
- 獲取搜索匹配結果
- 獲取搜索匹配數量
- 獲取熱門搜索詞
- 獲取相關搜索詞
- 搜索建議和糾錯
- 按字段值分面搜索
- 使用輔助工具
- RequiredCheck 運行檢測
- Indexer 索引管理器
- Quest 搜索測試工具
- SearchSkel 生成搜索代碼
- IniWizzard 配置文件向導
- Logger 搜索日志管理
- 專題
- 同義詞搜索功能
- 在SDK中使用SCWS分詞
- API 指南
- XS
- XS
- XSCommand
- XSComponent
- XSDocument
- XSErrorException
- XSException
- XSFieldMeta
- XSFieldScheme
- XSIndex
- XSSearch
- XSServer
- XS.tokenizer
- XSTokenizer
- XSTokenizerFull
- XSTokenizerNone
- XSTokenizerScws
- XSTokenizerSplit
- XSTokenizerXlen
- XSTokenizerXstep
- XS.util
- XSCsvDataSource
- XSDataFilter
- XSDatabaseDataSource
- XSDebugFilter
- XSJsonDataSource
- XSUtil
- XS.util.db
- XSDatabase
- XSDatabaseMySQL
- XSDatabaseMySQLI
- XSDatabasePDO
- XSDatabasePDO_MySQL
- XSDatabasePDO_PgSQL
- XSDatabasePDO_SQLite
- XSDatabasePgSQL
- XSDatabaseSQLite
- XSDatabaseSQLite3
- XS.utilf
- XSDataSource
- 其它文檔
- 關于 xunsearch
- 特色和優勢
- Xunsearch 架構簡圖
- 下載 Xunsearch
- 商業服務與支持
- XunSearch 授權許可證