可使用如下模式對搜尋結果排序

2021-06-21 21:20:10 字數 1441 閱讀 8712

排序模式

可使用如下模式對搜尋結果排序:

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...