最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

深入解析php之sphinx

 更新時(shí)間:2013年05月15日 17:01:27   作者:  
本篇文章是對(duì)php中sphinx的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下

<?php
//參數(shù)篩選

//篩選cat_id=2
$cl->SetFilter("cat_id",array(2));
//僅在id為1、3、7的子論壇中搜索
$cl->SetFilter("forum_id",array(1,3,7));

//范圍篩選
//篩選發(fā)布時(shí)間為今天,參數(shù)為int時(shí)間戳
$cl->SetFilterRange("starttime",123,124);
//篩選價(jià)格
$cl->SetFilterRange("price",10.0,99.9);

// 分組
//按照item_id分組,并且按照order desc排序
$cl->SetGroupBy("item_id",SPH_GROUP_ATTR,"order desc");

//排序模式
//按照price desc排序
$cl->SetSortMode(SPH_SORT_ATTR_DESC,"price");
 注意:會(huì)被SetGroupBy中的排序覆蓋

// 匹配查詢?cè)~中的任意一個(gè)
$cl->SetMatchMode ( SPH_MATCH_ANY );
SPH_MATCH_ALL, 匹配所有查詢?cè)~(默認(rèn)模式);
SPH_MATCH_ANY, 匹配查詢?cè)~中的任意一個(gè);
SPH_MATCH_PHRASE, 將整個(gè)查詢看作一個(gè)詞組,要求按順序完整匹配;
SPH_MATCH_BOOLEAN, 將查詢看作一個(gè)布爾表達(dá)式 (參見 第 5.2 節(jié) “布爾查詢語法”);
SPH_MATCH_EXTENDED, 將查詢看作一個(gè)CoreSeek/Sphinx內(nèi)部查詢語言的表達(dá)式 (參見 第 5.3 節(jié) “擴(kuò)展查詢語法”). 從版本Coreseek 3/Sphinx 0.9.9開始, 這個(gè)選項(xiàng)被選項(xiàng)SPH_MATCH_EXTENDED2代替,它提供了更多功能和更佳的性能。保留這個(gè)選項(xiàng)是為了與遺留的舊代碼兼容——這樣即使 Sphinx及其組件包括API升級(jí)的時(shí)候,舊的應(yīng)用程序代碼還能夠繼續(xù)工作。
SPH_MATCH_EXTENDED2, 使用第二版的“擴(kuò)展匹配模式”對(duì)查詢進(jìn)行匹配.
SPH_MATCH_FULLSCAN, 強(qiáng)制使用下文所述的“完整掃描”模式來對(duì)查詢進(jìn)行匹配。注意,在此模式下,所有的查詢?cè)~都被忽略,盡管過濾器、過濾器范圍以及分組仍然起作用,但任何文本匹配都不會(huì)發(fā)生.

//從0開始查詢,查詢30條,返回結(jié)果最多為1000
$cl->setLimits(0,30,1000);

// 從名稱為index的sphinx索引查詢“電影票”
$cl->Query("電影票","index");

// 從名稱為index的sphinx索引查詢“電影票”
$sp->SetGroupBy('item_id',SPH_GROUP_ATTR,'s_order desc');
$sp->SetFilter('city_id','1');
$sp->SetFilter('cat_id',array(1));
$sp->SetLimit(0,10,1000);
$sp->AddQuery('電影票','index');
$sp->ResetFilters();//重置篩選條件
$sp->ResetGroupBy();//重置分組

$sp->SetGroupBy('item_id', SPH_GROUPBY_ATTR, 's_order desc');
$sp->setFilter('city_id', '2');
$sp->setFilter('cat_id', array(2));
$sp->setLimits(0, 20, 1000);
$sp->AddQuery('溫泉', 'index');
$sp->ResetFilters();// 重置篩選條件
$sp->ResetGroupBy();//重置分組
$results = $sp->RunQuries();
批量查詢(或多查詢)使searchd能夠進(jìn)行可能的內(nèi)部?jī)?yōu)化,并且無論在任何情況下都會(huì)減少網(wǎng)絡(luò)連接和進(jìn)程創(chuàng)建方面的開銷。相對(duì)于單獨(dú)的查詢,批量查詢不會(huì)引入任何額外的開銷。因此當(dāng)您的Web頁運(yùn)行幾個(gè)不同的查詢時(shí),一定要考慮使用批量查詢。
例如,多次運(yùn)行同一個(gè)全文查詢,但使用不同的排序或分組設(shè)置,這會(huì)使searchd僅運(yùn)行一次開銷昂貴的全文檢索和相關(guān)度計(jì)算,然后在此基礎(chǔ)上產(chǎn)生多個(gè)分組結(jié)果。
有時(shí)您不僅需要簡(jiǎn)單地顯示搜索結(jié)果,而且要顯示一些與類別相關(guān)的計(jì)數(shù)信息,例如按制造商分組后的產(chǎn)品數(shù)目,此時(shí)批量查詢會(huì)節(jié)約大量的開銷。 若無批量查詢,您會(huì)必須將這些本質(zhì)上幾乎相同的查詢運(yùn)行多次并取回相同的匹配項(xiàng),最后產(chǎn)生不同的結(jié)果集。若使用批量查詢,您只須將這些查詢簡(jiǎn)單地組成一個(gè) 批量查詢,Sphinx會(huì)在內(nèi)部?jī)?yōu)化掉這些冗余的全文搜索。
AddQuery()在內(nèi)部存儲(chǔ)全部當(dāng)前設(shè)置狀態(tài)以及查詢,您也可在后續(xù)的AddQuery()調(diào)用中改變?cè)O(shè)置。早先加入的查詢不會(huì)被影響,實(shí)際上沒有任何辦法可以改變它們。

用上述代碼,第一個(gè)查詢會(huì)在“documents”索引上查詢“hello world”并將結(jié)果按相關(guān)度排序,第二個(gè)查詢會(huì)在“products”索引上查詢“ipod”并將結(jié)果按價(jià)格排序,第三個(gè)查詢?cè)凇癰ooks”索引上搜 索“harry potter”,結(jié)果仍按價(jià)格排序。注意,第二個(gè)SetSortMode()調(diào)用并不會(huì)影響第一個(gè)查詢(因?yàn)樗呀?jīng)被添加了),但后面的兩個(gè)查詢都會(huì)受影 響。
此外,在AddQuery()之前設(shè)置的任何過濾,都會(huì)被后續(xù)查詢繼續(xù)使用。因此,如果在第一個(gè)查詢前使用SetFilter(),則通過 AddQuery()執(zhí)行的第二個(gè)查詢(以及隨后的批量查詢)都會(huì)應(yīng)用同樣的過濾,除非你先調(diào)用ResetFilters()來清除過濾規(guī)則。同時(shí),你還 可以隨時(shí)加入新的過濾規(guī)則
AddQuery()并不修改當(dāng)前狀態(tài)。也就是說,已有的全部排序、過濾和分組設(shè)置都不會(huì)因這個(gè)調(diào)用而發(fā)生改變,因此后續(xù)的查詢很容易地復(fù)用現(xiàn)有設(shè)置。
AddQuery()返回RunQueries()結(jié)果返回的數(shù)組中的一個(gè)下標(biāo)。它是一個(gè)從0開始的遞增整數(shù),即,第一次調(diào)用返回0,第二次返回1,以此類推。這個(gè)方便的特性使你在需要這些下標(biāo)的時(shí)候不用手工記錄它們。
?>

相關(guān)文章

  • Yii2 GridView實(shí)現(xiàn)列表頁直接修改數(shù)據(jù)的方法

    Yii2 GridView實(shí)現(xiàn)列表頁直接修改數(shù)據(jù)的方法

    這篇文章主要介紹了Yii2 GridView實(shí)現(xiàn)列表頁直接修改數(shù)據(jù)的方法的相關(guān)資料,小編認(rèn)為非常具有參考價(jià)值,特此分享到腳本之家平臺(tái),需要的朋友可以參考下
    2016-05-05
  • PHP用swoole+websocket和redis實(shí)現(xiàn)web一對(duì)一聊天

    PHP用swoole+websocket和redis實(shí)現(xiàn)web一對(duì)一聊天

    這篇文章主要介紹了PHP用swoole+websocket和redis實(shí)現(xiàn)web一對(duì)一聊天,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • 在PHP8中向數(shù)組添加元素的常用方法

    在PHP8中向數(shù)組添加元素的常用方法

    這篇文章主要介紹了在PHP8中向數(shù)組添加元素的常用方法,在這里主要講解幾個(gè)常用的方法:使用方括號(hào)[]添加元素、使用array_unshift()函數(shù),向數(shù)組的頭部添加元素、使用array_push()函數(shù),向數(shù)組的尾部添加元素、使用array_splice()函數(shù)添加元素,需要的朋友可以參考下
    2023-09-09
  • php讀取qqwry.dat ip地址定位文件的類實(shí)例代碼

    php讀取qqwry.dat ip地址定位文件的類實(shí)例代碼

    下面小編就為大家?guī)硪黄猵hp讀取qqwry.dat ip地址定位文件的類實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • PHP文件類型檢查及fileinfo模塊安裝使用詳解

    PHP文件類型檢查及fileinfo模塊安裝使用詳解

    這篇文章主要介紹了PHP文件類型檢查及fileinfo模塊安裝使用詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2019-05-05
  • codeigniter數(shù)據(jù)庫操作函數(shù)匯總

    codeigniter數(shù)據(jù)庫操作函數(shù)匯總

    網(wǎng)上倒是有不少Codeigniter數(shù)據(jù)庫操作的介紹,這里做一個(gè)匯總,需要的朋友可以參考下
    2014-06-06
  • destoon實(shí)現(xiàn)調(diào)用自增數(shù)字從1開始的方法

    destoon實(shí)現(xiàn)調(diào)用自增數(shù)字從1開始的方法

    這篇文章主要介紹了destoon實(shí)現(xiàn)調(diào)用自增數(shù)字從1開始的方法,很有實(shí)用價(jià)值的一個(gè)技巧,需要的朋友可以參考下
    2014-08-08
  • Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法

    Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法

    這篇文章主要介紹了Yii2簡(jiǎn)單實(shí)現(xiàn)給表單添加驗(yàn)證碼的方法,簡(jiǎn)單分析了Yii中控制器的相關(guān)設(shè)置、表單模型的創(chuàng)建及視圖的調(diào)用技巧,需要的朋友可以參考下
    2016-07-07
  • thinkPHP模型初始化實(shí)例分析

    thinkPHP模型初始化實(shí)例分析

    這篇文章主要介紹了thinkPHP模型初始化的方法,結(jié)合實(shí)例形式分析了thinkPHP模型初始化及數(shù)據(jù)庫操作的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-12-12
  • PHP 讀取和編寫 XML

    PHP 讀取和編寫 XML

    本文主要介紹PHP 讀取和編寫 XML的方法,非常的簡(jiǎn)單實(shí)用,給需要的小伙伴們參考下吧
    2014-11-11

最新評(píng)論

增城市| 赞皇县| 金塔县| 类乌齐县| 措美县| 赣州市| 岳阳县| 砚山县| 边坝县| 河源市| 曲水县| 惠州市| 台中县| 邵阳市| 贺兰县| 鞍山市| 云霄县| 油尖旺区| 六安市| 汉阴县| 两当县| 巧家县| 河西区| 防城港市| 盐池县| 平南县| 乡城县| 聊城市| 太湖县| 阿坝县| 阿尔山市| 丹东市| 兰坪| 拉萨市| 淮安市| 保亭| 常熟市| 井陉县| 锦屏县| 遂宁市| 临城县|