XS

XS
繼承關系 class XS » XSComponent
版本 1.0.0
源代碼 sdk/php/lib/XS.class.php
XS 搜索項目主類

Public 屬性

隱去繼承來的屬性

名稱類型描述定義于
allFields XSFieldMeta[] 獲取項目所有字段結構設置 XS
config array 獲取配置原始數據 XS
defaultCharset string 獲取項目的默認字符集 XS
fieldBody XSFieldMeta 獲取當前內容字段 XS
fieldId XSFieldMeta 獲取當前主鍵字段 XS
fieldTitle XSFieldMeta 獲取當前標題字段 XS
index XSIndex 獲取索引操作對象 XS
name string 獲取當前項目名稱 XS
scheme XSFieldScheme 獲取當前在用的字段方案 XS
scwsServer XSServer 創建 scws 分詞連接 XS

Public 方法

隱去繼承來的方法

名稱描述定義于
__construct() 構造函數 XS
__destruct() 析構函數 XS
__get() 魔術方法 __get XSComponent
__isset() 魔術方法 __isset XSComponent
__set() 魔術方法 __set XSComponent
__unset() 魔術方法 __unset XSComponent
autoload() 智能加載類庫文件 XS
convert() 字符集轉換 XS
geoDistance() 計算經緯度距離 XS
getAllFields() 獲取項目所有字段結構設置 XS
getConfig() Returns 獲取配置原始數據 XS
getDefaultCharset() 獲取項目的默認字符集 XS
getField() 獲取項目字段元數據 XS
getFieldBody() 獲取當前內容字段 XS
getFieldId() 獲取當前主鍵字段 XS
getFieldTitle() 獲取當前標題字段 XS
getIndex() 獲取索引操作對象 XS
getLastXS() 獲取最新的 XS 實例 XS
getName() 獲取當前項目名稱 XS
getScheme() 獲取當前在用的字段方案 XS
getScwsServer() 創建 scws 分詞連接 XS
getSearch() 獲取搜索操作對象 XS
restoreScheme() 還原字段方案為項目綁定方案 XS
setDefaultCharset() 改變項目的默認字符集 XS
setName() 修改當前項目名稱 XS
setScheme() 設置當前在用的字段方案 XS

屬性明細

allFields 屬性 只讀
public XSFieldMeta[] getAllFields()

獲取項目所有字段結構設置

config 屬性 只讀
public array getConfig()

獲取配置原始數據

defaultCharset 屬性
public string getDefaultCharset()
public void setDefaultCharset(string $charset)

獲取項目的默認字符集

fieldBody 屬性 只讀
public XSFieldMeta getFieldBody()

獲取當前內容字段

參見

fieldId 屬性 只讀
public XSFieldMeta getFieldId()

獲取當前主鍵字段

參見

fieldTitle 屬性 只讀
public XSFieldMeta getFieldTitle()

獲取當前標題字段

參見

index 屬性 只讀
public XSIndex getIndex()

獲取索引操作對象

name 屬性
public string getName()
public void setName(string $name)

獲取當前項目名稱

scheme 屬性
public XSFieldScheme getScheme()
public void setScheme(XSFieldScheme $fs)

獲取當前在用的字段方案 通用于搜索結果文檔和修改、添加的索引文檔

scwsServer 屬性 只讀
public XSServer getScwsServer()

創建 scws 分詞連接

search 屬性 只讀
public XSSearch getSearch()

獲取搜索操作對象

方法明細

__construct() 方法
public void __construct(string $file)
$file string 要加載的項目配置文件
源碼: sdk/php/lib/XS.class.php#L284 (顯示)
public function __construct($file)
{
    if (
strlen($file) < 255 && !is_file($file)) {
        
$appRoot getenv('XS_APP_ROOT');
        if (
$appRoot === false) {
            
$appRoot defined('XS_APP_ROOT') ? XS_APP_ROOT XS_LIB_ROOT '/../app';
        }
        
$file2 $appRoot '/' $file '.ini';
        if (
is_file($file2)) {
            
$file $file2;
        }
    }
    
$this->loadIniFile($file);
    
self::$_lastXS $this;
}

構造函數 特別說明一個小技巧, 參數 $file 可以直接是配置文件的內容, 還可以是僅僅是文件名, 如果只是文件名會自動查找 XS_LIB_ROOT/../app/$file.ini

__destruct() 方法
public void __destruct()
源碼: sdk/php/lib/XS.class.php#L304 (顯示)
public function __destruct()
{
    
$this->_index null;
    
$this->_search null;
}

析構函數 由于對象交叉引用, 如需提前銷毀對象, 請強制調用該函數

autoload() 方法
public static void autoload(string $name)
$name string 類的名稱
源碼: sdk/php/lib/XS.class.php#L533 (顯示)
public static function autoload($name)
{
    
$file XS_LIB_ROOT '/' $name '.class.php';
    if (
file_exists($file)) {
        require_once 
$file;
    }
}

智能加載類庫文件 要求以 Name.class.php 命名并與本文件存放在同一目錄, 如: XSTokenizerXxx.class.php

convert() 方法
public static mixed convert(mixed $data, string $to, string $from)
$data mixed 需要轉換的數據, 支持 string 和 array, 數組會自動遞歸轉換
$to string 轉換后的字符集
$from string 轉換前的字符集
{return} mixed 轉換后的數據
源碼: sdk/php/lib/XS.class.php#L550 (顯示)
public static function convert($data$to$from)
{
    
// need not convert
    
if ($to == $from) {
        return 
$data;
    }
    
// array traverse
    
if (is_array($data)) {
        foreach (
$data as $key => $value) {
            
$data[$key] = self::convert($value$to$from);
        }
        return 
$data;
    }
    
// string contain 8bit characters
    
if (is_string($data) && preg_match('/[\x81-\xfe]/'$data)) {
        
// mbstring, iconv, throw ...
        
if (function_exists('mb_convert_encoding')) {
            return 
mb_convert_encoding($data$to$from);
        } elseif (
function_exists('iconv')) {
            return 
iconv($from$to '//TRANSLIT'$data);
        } else {
            throw new 
XSException('Cann\'t find the mbstring or iconv extension to convert encoding');
        }
    }
    return 
$data;
}

字符集轉換 要求安裝有 mbstring, iconv 中的一種

geoDistance() 方法
public static float geoDistance(float $lon1, float $lat1, float $lon2, float $lat2)
$lon1 float 原點經度
$lat1 float 原點緯度
$lon2 float 目標點經度
$lat2 float 目標點緯度
{return} float 兩點大致距離,單位:米
源碼: sdk/php/lib/XS.class.php#L585 (顯示)
public static function geoDistance($lon1$lat1$lon2$lat2)
{
    
$dx $lon1 $lon2;
    
$dy $lat1 $lat2;
    
$b = ($lat1 $lat2) / 2;
    
$lx 6367000.0 deg2rad($dx) * cos(deg2rad($b));
    
$ly 6367000.0 deg2rad($dy);
    return 
sqrt($lx $lx $ly $ly);
}

計算經緯度距離

getAllFields() 方法
public XSFieldMeta[] getAllFields()
{return} XSFieldMeta[]
源碼: sdk/php/lib/XS.class.php#L523 (顯示)
public function getAllFields()
{
    return 
$this->_scheme->getAllFields();
}

獲取項目所有字段結構設置

getConfig() 方法
public array getConfig()
{return} array 獲取配置原始數據
源碼: sdk/php/lib/XS.class.php#L359 (顯示)
public function getConfig()
{
    return 
$this->_config;
}

getDefaultCharset() 方法
public string getDefaultCharset()
{return} string 默認字符集(已大寫)
源碼: sdk/php/lib/XS.class.php#L387 (顯示)
public function getDefaultCharset()
{
    return isset(
$this->_config['project.default_charset']) ?
        
strtoupper($this->_config['project.default_charset']) : 'UTF-8';
}

獲取項目的默認字符集

getField() 方法
public XSFieldMeta getField(mixed $name, bool $throw=true)
$name mixed 字段名稱(string) 或字段序號(vno, int)
$throw bool 當字段不存在時是否拋出異常, 默認為 true
{return} XSFieldMeta 字段元數據對象
源碼: sdk/php/lib/XS.class.php#L514 (顯示)
public function getField($name$throw true)
{
    return 
$this->_scheme->getField($name$throw);
}

獲取項目字段元數據

參見

getFieldBody() 方法
public XSFieldMeta getFieldBody()
{return} XSFieldMeta 類型為 BODY 的字段
源碼: sdk/php/lib/XS.class.php#L501 (顯示)
public function getFieldBody()
{
    return 
$this->_scheme->getFieldBody();
}

獲取當前內容字段

參見

getFieldId() 方法
public XSFieldMeta getFieldId()
{return} XSFieldMeta 類型為 ID 的字段
源碼: sdk/php/lib/XS.class.php#L481 (顯示)
public function getFieldId()
{
    return 
$this->_scheme->getFieldId();
}

獲取當前主鍵字段

參見

getFieldTitle() 方法
public XSFieldMeta getFieldTitle()
{return} XSFieldMeta 類型為 TITLE 的字段
源碼: sdk/php/lib/XS.class.php#L491 (顯示)
public function getFieldTitle()
{
    return 
$this->_scheme->getFieldTitle();
}

獲取當前標題字段

參見

getIndex() 方法
public XSIndex getIndex()
{return} XSIndex 索引操作對象
源碼: sdk/php/lib/XS.class.php#L406 (顯示)
public function getIndex()
{
    if (
$this->_index === null) {
        
$adds = array();
        
$conn = isset($this->_config['server.index']) ? $this->_config['server.index'] : 8383;
        if ((
$pos strpos($conn';')) !== false) {
            
$adds explode(';'substr($conn$pos 1));
            
$conn substr($conn0$pos);
        }
        
$this->_index = new XSIndex($conn$this);
        
$this->_index->setTimeout(0);
        foreach (
$adds as $conn) {
            
$conn trim($conn);
            if (
$conn !== '') {
                
$this->_index->addServer($conn)->setTimeout(0);
            }
        }
    }
    return 
$this->_index;
}

獲取索引操作對象

getLastXS() 方法
public static XS getLastXS()
{return} XS 最近創建的 XS 對象
源碼: sdk/php/lib/XS.class.php#L314 (顯示)
public static function getLastXS()
{
    return 
self::$_lastXS;
}

獲取最新的 XS 實例

getName() 方法
public string getName()
{return} string 當前項目名稱
源碼: sdk/php/lib/XS.class.php#L368 (顯示)
public function getName()
{
    return 
$this->_config['project.name'];
}

獲取當前項目名稱

getScheme() 方法
public XSFieldScheme getScheme()
{return} XSFieldScheme 當前字段方案
源碼: sdk/php/lib/XS.class.php#L324 (顯示)
public function getScheme()
{
    return 
$this->_scheme;
}

獲取當前在用的字段方案 通用于搜索結果文檔和修改、添加的索引文檔

getScwsServer() 方法
public XSServer getScwsServer()
{return} XSServer 分詞服務器
源碼: sdk/php/lib/XS.class.php#L467 (顯示)
public function getScwsServer()
{
    if (
$this->_scws === null) {
        
$conn = isset($this->_config['server.search']) ? $this->_config['server.search'] : 8384;
        
$this->_scws = new XSServer($conn$this);
    }
    return 
$this->_scws;
}

創建 scws 分詞連接

getSearch() 方法
public XSSearch getSearch()
{return} XSSearch 搜索操作對象
源碼: sdk/php/lib/XS.class.php#L431 (顯示)
public function getSearch()
{
    if (
$this->_search === null) {
        
$conns = array();
        if (!isset(
$this->_config['server.search'])) {
            
$conns[] = 8384;
        } else {
            foreach (
explode(';'$this->_config['server.search']) as $conn) {
                
$conn trim($conn);
                if (
$conn !== '') {
                    
$conns[] = $conn;
                }
            }
        }
        if (
count($conns) > 1) {
            
shuffle($conns);
        }
        for (
$i 0$i count($conns); $i++) {
            try {
                
$this->_search = new XSSearch($conns[$i], $this);
                
$this->_search->setCharset($this->getDefaultCharset());
                return 
$this->_search;
            } catch (
XSException $e) {
                if ((
$i 1) === count($conns)) {
                    throw 
$e;
                }
            }
        }
    }
    return 
$this->_search;
}

獲取搜索操作對象

restoreScheme() 方法
public void restoreScheme()
源碼: sdk/php/lib/XS.class.php#L346 (顯示)
public function restoreScheme()
{
    if (
$this->_scheme !== $this->_bindScheme) {
        
$this->_scheme $this->_bindScheme;
        if (
$this->_search !== null) {
            
$this->_search->markResetScheme(true);
        }
    }
}

還原字段方案為項目綁定方案

setDefaultCharset() 方法
public void setDefaultCharset(string $charset)
$charset string 修改后的字符集
源碼: sdk/php/lib/XS.class.php#L397 (顯示)
public function setDefaultCharset($charset)
{
    
$this->_config['project.default_charset'] = strtoupper($charset);
}

改變項目的默認字符集

setName() 方法
public void setName(string $name)
$name string 項目名稱
源碼: sdk/php/lib/XS.class.php#L378 (顯示)
public function setName($name)
{
    
$this->_config['project.name'] = $name;
}

修改當前項目名稱 注意,必須在 getSearchgetIndex 前調用才能起作用

setScheme() 方法
public void setScheme(XSFieldScheme $fs)
$fs XSFieldScheme 一個有效的字段方案對象
源碼: sdk/php/lib/XS.class.php#L334 (顯示)
public function setScheme(XSFieldScheme $fs)
{
    
$fs->checkValid(true);
    
$this->_scheme $fs;
    if (
$this->_search !== null) {
        
$this->_search->markResetScheme();
    }
}

設置當前在用的字段方案

XS - 類參考 - 迅搜(xunsearch) - 開源免費中文全文搜索引擎

文檔說明

XS

XS
繼承關系 class XS » XSComponent
版本 1.0.0
源代碼 sdk/php/lib/XS.class.php
XS 搜索項目主類

Public 屬性

隱去繼承來的屬性

名稱類型描述定義于
allFields XSFieldMeta[] 獲取項目所有字段結構設置 XS
config array 獲取配置原始數據 XS
defaultCharset string 獲取項目的默認字符集 XS
fieldBody XSFieldMeta 獲取當前內容字段 XS
fieldId XSFieldMeta 獲取當前主鍵字段 XS
fieldTitle XSFieldMeta 獲取當前標題字段 XS
index XSIndex 獲取索引操作對象 XS
name string 獲取當前項目名稱 XS
scheme XSFieldScheme 獲取當前在用的字段方案 XS
scwsServer XSServer 創建 scws 分詞連接 XS

Public 方法

隱去繼承來的方法

名稱描述定義于
__construct() 構造函數 XS
__destruct() 析構函數 XS
__get() 魔術方法 __get XSComponent
__isset() 魔術方法 __isset XSComponent
__set() 魔術方法 __set XSComponent
__unset() 魔術方法 __unset XSComponent
autoload() 智能加載類庫文件 XS
convert() 字符集轉換 XS
geoDistance() 計算經緯度距離 XS
getAllFields() 獲取項目所有字段結構設置 XS
getConfig() Returns 獲取配置原始數據 XS
getDefaultCharset() 獲取項目的默認字符集 XS
getField() 獲取項目字段元數據 XS
getFieldBody() 獲取當前內容字段 XS
getFieldId() 獲取當前主鍵字段 XS
getFieldTitle() 獲取當前標題字段 XS
getIndex() 獲取索引操作對象 XS
getLastXS() 獲取最新的 XS 實例 XS
getName() 獲取當前項目名稱 XS
getScheme() 獲取當前在用的字段方案 XS
getScwsServer() 創建 scws 分詞連接 XS
getSearch() 獲取搜索操作對象 XS
restoreScheme() 還原字段方案為項目綁定方案 XS
setDefaultCharset() 改變項目的默認字符集 XS
setName() 修改當前項目名稱 XS
setScheme() 設置當前在用的字段方案 XS

屬性明細

allFields 屬性 只讀
public XSFieldMeta[] getAllFields()

獲取項目所有字段結構設置

config 屬性 只讀
public array getConfig()

獲取配置原始數據

defaultCharset 屬性
public string getDefaultCharset()
public void setDefaultCharset(string $charset)

獲取項目的默認字符集

fieldBody 屬性 只讀

獲取當前內容字段

fieldId 屬性 只讀

獲取當前主鍵字段

fieldTitle 屬性 只讀

獲取當前標題字段

index 屬性 只讀
public XSIndex getIndex()

獲取索引操作對象

name 屬性
public string getName()
public void setName(string $name)

獲取當前項目名稱

scheme 屬性

獲取當前在用的字段方案 通用于搜索結果文檔和修改、添加的索引文檔

scwsServer 屬性 只讀

創建 scws 分詞連接

search 屬性 只讀

獲取搜索操作對象

方法明細

__construct() 方法
public void __construct(string $file)
$file string 要加載的項目配置文件
源碼: sdk/php/lib/XS.class.php#L284 (顯示)
public function __construct($file)
{
    if (
strlen($file) < 255 && !is_file($file)) {
        
$appRoot getenv('XS_APP_ROOT');
        if (
$appRoot === false) {
            
$appRoot defined('XS_APP_ROOT') ? XS_APP_ROOT XS_LIB_ROOT '/../app';
        }
        
$file2 $appRoot '/' $file '.ini';
        if (
is_file($file2)) {
            
$file $file2;
        }
    }
    
$this->loadIniFile($file);
    
self::$_lastXS $this;
}

構造函數 特別說明一個小技巧, 參數 $file 可以直接是配置文件的內容, 還可以是僅僅是文件名, 如果只是文件名會自動查找 XS_LIB_ROOT/../app/$file.ini

__destruct() 方法
public void __destruct()
源碼: sdk/php/lib/XS.class.php#L304 (顯示)
public function __destruct()
{
    
$this->_index null;
    
$this->_search null;
}

析構函數 由于對象交叉引用, 如需提前銷毀對象, 請強制調用該函數

autoload() 方法
public static void autoload(string $name)
$name string 類的名稱
源碼: sdk/php/lib/XS.class.php#L533 (顯示)
public static function autoload($name)
{
    
$file XS_LIB_ROOT '/' $name '.class.php';
    if (
file_exists($file)) {
        require_once 
$file;
    }
}

智能加載類庫文件 要求以 Name.class.php 命名并與本文件存放在同一目錄, 如: XSTokenizerXxx.class.php

convert() 方法
public static mixed convert(mixed $data, string $to, string $from)
$data mixed 需要轉換的數據, 支持 string 和 array, 數組會自動遞歸轉換
$to string 轉換后的字符集
$from string 轉換前的字符集
{return} mixed 轉換后的數據
源碼: sdk/php/lib/XS.class.php#L550 (顯示)
public static function convert($data$to$from)
{
    
// need not convert
    
if ($to == $from) {
        return 
$data;
    }
    
// array traverse
    
if (is_array($data)) {
        foreach (
$data as $key => $value) {
            
$data[$key] = self::convert($value$to$from);
        }
        return 
$data;
    }
    
// string contain 8bit characters
    
if (is_string($data) && preg_match('/[\x81-\xfe]/'$data)) {
        
// mbstring, iconv, throw ...
        
if (function_exists('mb_convert_encoding')) {
            return 
mb_convert_encoding($data$to$from);
        } elseif (
function_exists('iconv')) {
            return 
iconv($from$to '//TRANSLIT'$data);
        } else {
            throw new 
XSException('Cann\'t find the mbstring or iconv extension to convert encoding');
        }
    }
    return 
$data;
}

字符集轉換 要求安裝有 mbstring, iconv 中的一種

geoDistance() 方法
public static float geoDistance(float $lon1, float $lat1, float $lon2, float $lat2)
$lon1 float 原點經度
$lat1 float 原點緯度
$lon2 float 目標點經度
$lat2 float 目標點緯度
{return} float 兩點大致距離,單位:米
源碼: sdk/php/lib/XS.class.php#L585 (顯示)
public static function geoDistance($lon1$lat1$lon2$lat2)
{
    
$dx $lon1 $lon2;
    
$dy $lat1 $lat2;
    
$b = ($lat1 $lat2) / 2;
    
$lx 6367000.0 deg2rad($dx) * cos(deg2rad($b));
    
$ly 6367000.0 deg2rad($dy);
    return 
sqrt($lx $lx $ly $ly);
}

計算經緯度距離

getAllFields() 方法
public XSFieldMeta[] getAllFields()
{return} XSFieldMeta[]
源碼: sdk/php/lib/XS.class.php#L523 (顯示)
public function getAllFields()
{
    return 
$this->_scheme->getAllFields();
}

獲取項目所有字段結構設置

getConfig() 方法
public array getConfig()
{return} array 獲取配置原始數據
源碼: sdk/php/lib/XS.class.php#L359 (顯示)
public function getConfig()
{
    return 
$this->_config;
}

getDefaultCharset() 方法
public string getDefaultCharset()
{return} string 默認字符集(已大寫)
源碼: sdk/php/lib/XS.class.php#L387 (顯示)
public function getDefaultCharset()
{
    return isset(
$this->_config['project.default_charset']) ?
        
strtoupper($this->_config['project.default_charset']) : 'UTF-8';
}

獲取項目的默認字符集

getField() 方法
public XSFieldMeta getField(mixed $name, bool $throw=true)
$name mixed 字段名稱(string) 或字段序號(vno, int)
$throw bool 當字段不存在時是否拋出異常, 默認為 true
{return} XSFieldMeta 字段元數據對象
源碼: sdk/php/lib/XS.class.php#L514 (顯示)
public function getField($name$throw true)
{
    return 
$this->_scheme->getField($name$throw);
}

獲取項目字段元數據

getFieldBody() 方法
public XSFieldMeta getFieldBody()
{return} XSFieldMeta 類型為 BODY 的字段
源碼: sdk/php/lib/XS.class.php#L501 (顯示)
public function getFieldBody()
{
    return 
$this->_scheme->getFieldBody();
}

獲取當前內容字段

getFieldId() 方法
public XSFieldMeta getFieldId()
{return} XSFieldMeta 類型為 ID 的字段
源碼: sdk/php/lib/XS.class.php#L481 (顯示)
public function getFieldId()
{
    return 
$this->_scheme->getFieldId();
}

獲取當前主鍵字段

getFieldTitle() 方法
public XSFieldMeta getFieldTitle()
{return} XSFieldMeta 類型為 TITLE 的字段
源碼: sdk/php/lib/XS.class.php#L491 (顯示)
public function getFieldTitle()
{
    return 
$this->_scheme->getFieldTitle();
}

獲取當前標題字段

getIndex() 方法
public XSIndex getIndex()
{return} XSIndex 索引操作對象
源碼: sdk/php/lib/XS.class.php#L406 (顯示)
public function getIndex()
{
    if (
$this->_index === null) {
        
$adds = array();
        
$conn = isset($this->_config['server.index']) ? $this->_config['server.index'] : 8383;
        if ((
$pos strpos($conn';')) !== false) {
            
$adds explode(';'substr($conn$pos 1));
            
$conn substr($conn0$pos);
        }
        
$this->_index = new XSIndex($conn$this);
        
$this->_index->setTimeout(0);
        foreach (
$adds as $conn) {
            
$conn trim($conn);
            if (
$conn !== '') {
                
$this->_index->addServer($conn)->setTimeout(0);
            }
        }
    }
    return 
$this->_index;
}

獲取索引操作對象

getLastXS() 方法
public static XS getLastXS()
{return} XS 最近創建的 XS 對象
源碼: sdk/php/lib/XS.class.php#L314 (顯示)
public static function getLastXS()
{
    return 
self::$_lastXS;
}

獲取最新的 XS 實例

getName() 方法
public string getName()
{return} string 當前項目名稱
源碼: sdk/php/lib/XS.class.php#L368 (顯示)
public function getName()
{
    return 
$this->_config['project.name'];
}

獲取當前項目名稱

getScheme() 方法
public XSFieldScheme getScheme()
{return} XSFieldScheme 當前字段方案
源碼: sdk/php/lib/XS.class.php#L324 (顯示)
public function getScheme()
{
    return 
$this->_scheme;
}

獲取當前在用的字段方案 通用于搜索結果文檔和修改、添加的索引文檔

getScwsServer() 方法
public XSServer getScwsServer()
{return} XSServer 分詞服務器
源碼: sdk/php/lib/XS.class.php#L467 (顯示)
public function getScwsServer()
{
    if (
$this->_scws === null) {
        
$conn = isset($this->_config['server.search']) ? $this->_config['server.search'] : 8384;
        
$this->_scws = new XSServer($conn$this);
    }
    return 
$this->_scws;
}

創建 scws 分詞連接

getSearch() 方法
public XSSearch getSearch()
{return} XSSearch 搜索操作對象
源碼: sdk/php/lib/XS.class.php#L431 (顯示)
public function getSearch()
{
    if (
$this->_search === null) {
        
$conns = array();
        if (!isset(
$this->_config['server.search'])) {
            
$conns[] = 8384;
        } else {
            foreach (
explode(';'$this->_config['server.search']) as $conn) {
                
$conn trim($conn);
                if (
$conn !== '') {
                    
$conns[] = $conn;
                }
            }
        }
        if (
count($conns) > 1) {
            
shuffle($conns);
        }
        for (
$i 0$i count($conns); $i++) {
            try {
                
$this->_search = new XSSearch($conns[$i], $this);
                
$this->_search->setCharset($this->getDefaultCharset());
                return 
$this->_search;
            } catch (
XSException $e) {
                if ((
$i 1) === count($conns)) {
                    throw 
$e;
                }
            }
        }
    }
    return 
$this->_search;
}

獲取搜索操作對象

restoreScheme() 方法
public void restoreScheme()
源碼: sdk/php/lib/XS.class.php#L346 (顯示)
public function restoreScheme()
{
    if (
$this->_scheme !== $this->_bindScheme) {
        
$this->_scheme $this->_bindScheme;
        if (
$this->_search !== null) {
            
$this->_search->markResetScheme(true);
        }
    }
}

還原字段方案為項目綁定方案

setDefaultCharset() 方法
public void setDefaultCharset(string $charset)
$charset string 修改后的字符集
源碼: sdk/php/lib/XS.class.php#L397 (顯示)
public function setDefaultCharset($charset)
{
    
$this->_config['project.default_charset'] = strtoupper($charset);
}

改變項目的默認字符集

setName() 方法
public void setName(string $name)
$name string 項目名稱
源碼: sdk/php/lib/XS.class.php#L378 (顯示)
public function setName($name)
{
    
$this->_config['project.name'] = $name;
}

修改當前項目名稱 注意,必須在 getSearchgetIndex 前調用才能起作用

setScheme() 方法
public void setScheme(XSFieldScheme $fs)
$fs XSFieldScheme 一個有效的字段方案對象
源碼: sdk/php/lib/XS.class.php#L334 (顯示)
public function setScheme(XSFieldScheme $fs)
{
    
$fs->checkValid(true);
    
$this->_scheme $fs;
    if (
$this->_search !== null) {
        
$this->_search->markResetScheme();
    }
}

設置當前在用的字段方案

留下一條評論吧!

請到論壇 登錄 后刷新本頁面!

青海快三开奖走势图_ 网络推广 微赚网 加拿大快乐8软件走势图 网上兼职赚钱网站 江西11选五走势图 一定牛 四川熊猫麻将苹果版 足球游戏下载 海南天天麻将下载安装 双色球弧形码 快乐双彩最新开奖公告