sphinx關鍵字套紅

2022-07-05 10:36:12 字數 3000 閱讀 3591

sphinx定義搜尋結果,搜尋的內容著重顯示,可以使用下面**

1

<?php2/*

*3* created by phpstorm.

4* user: pc00001

5* date: 2015/4/10

6* time: 14:187*/

8header('content-type:text/html;charset=utf-8');

9include_once('sphinxapi.php');

1011

$sp = new

sphinxclient();

1213

$sp ->setserver('127.0.0.1',9312); //

server連線

14$sp ->setconnecttimeout(5); //

超時時間

15$sp ->setlimits(0,10); //

取出條數

1617

$keywords = isset($_request['ky'])?$_request['ky']:'**';

1819

$res = $sp ->query($keywords,'*');

2021

22$res_id = (implode(',',array_keys($res['matches'])));

2324

$conn= mysql_connect('127.0.0.1','root','');

25mysql_query('set names utf8');

26mysql_query('use ldds');

27$sql = "select*from ld_goods where goods_id in ($res_id)";

28$tmp = mysql_query($sql,$conn

);29

30$query_res = array

();31

while($row = mysql_fetch_assoc($tmp

))34

3536

$goods_name = array

();37

$res = array

();38

//定義關鍵字標註內容

39$build_opts = array

(40 'before_match'=>"", //

在關鍵字之前新增的html

41 'after_match'=> '' //

在關鍵字之後新增的html

42);

4344

45foreach($query_res

as$k=>$v)48

49//

引數分別是 (需要標註的內容,索引名稱,關鍵字,定義關鍵字設定陣列)

50$res = $sp -> buildexcerpts($goods_name,'mysql',$keywords,$build_opts

);51

print_r($res

);52

//var_dump($goods_name);exit;

結果顯示類似下面內容

[0] => ** 2014春裝** 女 繡花針織衫 開衫外套浮桑初 藍色 [1] => ** 2014春裝** 女 繡花針織衫 開衫外套浮桑初 綠色 

其他常用方法

其他sphinxapi中常用方法 1

$sp ->setmatchmode( );

sph_match_all,匹配所有查詢詞(預設模式)

sph_match_any,匹配查詢詞中的任意乙個

sph_match_phrase,將整個查詢看作乙個片語,要求按順序完整匹配

sph_match_extended,將查詢看作乙個sphinx內部查詢語言的表示式

$sp->setfilterrange ( $attribute, $min, $max, $exclude=false

); 新增新的整數範圍過濾器

$sp->setfilterrange (『dateline』,time()-3600,time());//

查詢某個時間段

$sp->setfilter ( $attribute, $values, $exclude=false );//

查詢指定欄位為value,如通過uid查

增加整數值過濾器。

$sp->setsortmode ( $mode, $sortby=「」 ) ;

設定匹配項的排序模式,6種模式

sph_sort_expr 模式,按某個算術表示式排序。

$uptime = time() - 60*60*24*60;

$sp->setsortmode(sph_sort_expr, "@weight + if(dateline > $uptime,1,0)「)

$sp->setfieldweights ( $weights );//按欄位名稱設定欄位的權值

if (!$is_bytitle) else {

$weight = array(

'title'=> 100,'content'=> 10,

$sp->setfieldweights($weights); // 適用於按標題搜尋,或者按內容搜尋

$sp->setfilterfloatrange( $attribute, $min, $max, $exclude=false );

增加新的浮點數範圍過濾器。使用方法類似於整型過濾

注意:使用這些方法,需要將資料所在欄位的內容加入到索引中。如配置檔案中:

sql_attr_uint  = click

sql_attr_timestamp      = dateline

另外這些方法必須在query()方法執行前執行。

new關鍵字 this關鍵字 base關鍵字

使用new,所做的三件事 1.類是引用物件,引用物件是在堆中開闢空間 在堆中開闢空間 2.在開闢的堆空間中建立物件 3.呼叫物件的構建函式 4.隱藏父類成員 子類的成員可以與隱藏從父類繼承的成員,類似於重寫。public new void sayhello this關鍵字的使用 1.代表當前類的物件...

this關鍵字 static關鍵字

1.當成員變數和區域性變數重名,可以用關鍵字this來區分 this 代表物件,代表那個物件呢?當前物件 this就是所在函式所屬物件的引用 簡單說 那個物件呼叫了this所在的函式,this就代表哪個物件 this也可以用於在建構函式中呼叫其他建構函式 注意 只能定義在建構函式的第一行,因為初始化...

base關鍵字 this關鍵字

用於在派生類中實現對基類公有或者受保護成員的訪問,但是只侷限在建構函式 例項方法和例項屬性訪問器中。功能主要包括 1 呼叫基類上已被其他方法重寫的方法。2 指定建立派生類例項時應呼叫的基類建構函式。base常用於,在派生類物件初始化時和基類進行通訊。base可以訪問基類的公有成員和受保護成員,私有成...