排序模式
可使用如下模式對搜尋結果排序:
sph_sort_relevance 模式, 按相關度降序排列(最好的匹配排在最前面)
sph_sort_attr_desc 模式, 按屬性降序排列 (屬性值越大的越是排在前面)
sph_sort_attr_asc 模式, 按屬性公升序排列(屬性值越小的越是排在前面)
sph_sort_time_segments 模式, 先按時間段(最近一小時/天/周/月)降序,再按相關度降序
sph_sort_extended 模式, 按一種類似sql的方式將列組合起來,公升序或降序排列。
sph_sort_expr 模式,按某個算術表示式排序
view sourceprint?01.//使用屬性排序
02.03.//以fromid倒序排序,注意當再次使用setsortmode會覆蓋上乙個排序
04.05.$sphinx->setsortmode ( "sph_sort_attr_desc", 'fromid');
06.07.//如果要使用多個字段排序可使用sph_sort_extended模式
08.09.//@id是sphinx內建關鍵字,這裡指emailid,至於為什麼是emailid,自己思考一下
10.11.$sphinx->setsortmode ( "sph_sort_attr_desc", 'fromid asc, toid desc, @id desc');
12.labjz.howbk.com
13.//執行搜尋
14.15.$result = $sphinx->query('關鍵字', '*');
//更多請檢視官方文件排序模式的說明
匹配模式
有如下可選的匹配模式:
sph_match_all, 匹配所有查詢詞(預設模式);
sph_match_any, 匹配查詢詞中的任意乙個;
sph_match_phrase, 將整個查詢看作乙個片語,要求按順序完整匹配;
sph_match_boolean, 將查詢看作乙個布林表示式
sph_match_extended, 將查詢看作乙個coreseek/sphinx內部查詢語言的表示式 . 從版本coreseek 3/sphinx 0.9.9開始, 這個選項被選項sph_match_extended2代替,它提供了更多功能和更佳的效能。保留這個選項是為了與遺留的舊**相容——這樣即使sphinx及其元件包括api公升級的時候,舊的應用程式**還能夠繼續工作。
sph_match_extended2, 使用第二版的「擴充套件匹配模式」對查詢進行匹配.
sph_match_fullscan, 強制使用下文所述的「完整掃瞄」模式來對查詢進行匹配。注意,在此模式下,所有的查詢詞都被忽略,儘管過濾器、過濾器範圍以及分組仍然起作用,但任何文字匹配都不會發生.
我們要關注的主要是sph_match_extended2擴充套件匹配模式,擴充套件匹配模式允許使用一些像mysql的條件語句
C 對 byte 陣列進行模式搜尋
最簡單的方法是進行數值判斷,但是 最少是使用linq 效率比較高是使用 boyer moore 演算法,下面就告訴大家幾個演算法的 class bytearrayrocks for int i start i source.length i yield return i private static...
使用lucene對搜尋結果排序
lucene預設根據匹配度對搜尋結果降序排,如果對某個域進行排序?通常分兩步 step1 建索引時 newfield audittime row.get audittime tostring 關鍵點是你需要排序的字段建索引時應該採用 field.index.un tokenized,至於需不需要 f...
使用lucene對搜尋結果排序
lucene預設根據匹配度對搜尋結果降序排,如果對某個域進行排序?通常分兩步 step1 建索引時 newfield audittime row.get audittime tostring 關鍵點是你需要排序的字段建索引時應該採用 field.index.un tokenized,至於需不需要 f...