91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

php中sphinx的用法

發布時間:2021-07-22 23:04:31 來源:億速云 閱讀:113 作者:chen 欄目:開發技術

這篇文章主要講解了“php中sphinx的用法”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“php中sphinx的用法”吧!

<?php
//參數篩選

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

//范圍篩選
//篩選發布時間為今天,參數為int時間戳
$cl->SetFilterRange("starttime",123,124);
//篩選價格
$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");
 注意:會被SetGroupBy中的排序覆蓋

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

//從0開始查詢,查詢30條,返回結果最多為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能夠進行可能的內部優化,并且無論在任何情況下都會減少網絡連接和進程創建方面的開銷。相對于單獨的查詢,批量查詢不會引入任何額外的開銷。因此當您的Web頁運行幾個不同的查詢時,一定要考慮使用批量查詢。
例如,多次運行同一個全文查詢,但使用不同的排序或分組設置,這會使searchd僅運行一次開銷昂貴的全文檢索和相關度計算,然后在此基礎上產生多個分組結果。
有時您不僅需要簡單地顯示搜索結果,而且要顯示一些與類別相關的計數信息,例如按制造商分組后的產品數目,此時批量查詢會節約大量的開銷。 若無批量查詢,您會必須將這些本質上幾乎相同的查詢運行多次并取回相同的匹配項,最后產生不同的結果集。若使用批量查詢,您只須將這些查詢簡單地組成一個 批量查詢,Sphinx會在內部優化掉這些冗余的全文搜索。
AddQuery()在內部存儲全部當前設置狀態以及查詢,您也可在后續的AddQuery()調用中改變設置。早先加入的查詢不會被影響,實際上沒有任何辦法可以改變它們。

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

感謝各位的閱讀,以上就是“php中sphinx的用法”的內容了,經過本文的學習后,相信大家對php中sphinx的用法這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

山阴县| 台中市| 宁河县| 郑州市| 齐齐哈尔市| 青川县| 北宁市| 陕西省| 宾川县| 随州市| 永和县| 贵定县| 顺平县| 兴国县| 永登县| 当阳市| 阿勒泰市| 姚安县| 宿迁市| 潼南县| 尉犁县| 枞阳县| 云安县| 德庆县| 陆河县| 建阳市| 平度市| 怀宁县| 宿松县| 灵石县| 巧家县| 米易县| 新民市| 深州市| 思茅市| 阳谷县| 长阳| 焦作市| 芮城县| 习水县| 瑞丽市|