久久精品水蜜桃av综合天堂,久久精品丝袜高跟鞋,精品国产肉丝袜久久,国产一区二区三区色噜噜,黑人video粗暴亚裔

Sphinx/排序模式

來(lái)自站長(zhǎng)百科
跳轉(zhuǎn)至: 導(dǎo)航、? 搜索

Sphinx | 安裝 | 建立索引|搜索|命令行工具參考|MySQL存儲(chǔ)引擎

可使用如下模式對(duì)搜索結(jié)果排序:

  • SPH_SORT_RELEVANCE 模式, 按相關(guān)度降序排列(最好的匹配排在最前面)
  • SPH_SORT_ATTR_DESC 模式, 按屬性降序排列 (屬性值越大的越是排在前面)
  • SPH_SORT_ATTR_ASC 模式, 按屬性升序排列(屬性值越小的越是排在前面)
  • SPH_SORT_TIME_SEGMENTS 模式, 先按時(shí)間段(最近一小時(shí)/天/周/月)降序,再按相關(guān)度降序
  • SPH_SORT_EXTENDED 模式, 按一種類(lèi)似SQL的方式將列組合起來(lái),升序或降序排列。
  • SPH_SORT_EXPR 模式,按某個(gè)算術(shù)表達(dá)式排序。

SPH_SORT_RELEVANCE忽略任何附加的參數(shù),永遠(yuǎn)按相關(guān)度評(píng)分排序。所有其余的模式都要求額外的排序子句,子句的語(yǔ)法跟具體的模式有關(guān)。SPH_SORT_ATTR_ASC, SPH_SORT_ATTR_DESC以及SPH_SORT_TIME_SEGMENTS這三個(gè)模式僅要求一個(gè)屬性名。SPH_SORT_RELEVANCE模式等價(jià)于在擴(kuò)展模式中按"@weight DESC, @id ASC"排序,SPH_SORT_ATTR_ASC 模式等價(jià)于"attribute ASC, @weight DESC, @id ASC",而SPH_SORT_ATTR_DESC 等價(jià)于"attribute DESC, @weight DESC, @id ASC"。

SPH_SORT_TIME_SEGMENTS 模式

在SPH_SORT_TIME_SEGMENTS模式中,屬性值被分割成“時(shí)間段”,然后先按時(shí)間段排序,再按相關(guān)度排序。

時(shí)間段是根據(jù)搜索發(fā)生時(shí)的當(dāng)前時(shí)間戳計(jì)算的,因此結(jié)果隨時(shí)間而變化。

時(shí)間段的分法固化在搜索程序中了,但如果需要,也可以比較容易地改變(需要修改源碼)。

這種模式是為了方便對(duì)Blog日志和新聞提要等的搜索而增加的。使用這個(gè)模式時(shí),處于更近時(shí)間段的記錄會(huì)排在前面,但是在同一時(shí)間段中的記錄又根據(jù)相關(guān)度排序-這不同于單純按時(shí)間戳排序而不考慮相關(guān)度。

SPH_SORT_EXTENDED 模式

在 SPH_SORT_EXTENDED 模式中,您可以指定一個(gè)類(lèi)似SQL的排序表達(dá)式,但涉及的屬性(包括內(nèi)部屬性)不能超過(guò)5個(gè),例如:

@relevance DESC, price ASC, @id DESC

只要做了相關(guān)設(shè)置,不管是內(nèi)部屬性(引擎動(dòng)態(tài)計(jì)算出來(lái)的那些屬性)還是用戶(hù)定義的屬性就都可以使用。內(nèi)部屬性的名字必須用特殊符號(hào)@開(kāi)頭,用戶(hù)屬性按原樣使用就行了。在上面的例子里,@relevance和@id是內(nèi)部屬性,而price是用戶(hù)定義屬性。

已知的內(nèi)置屬性:

  1. @id (匹配文檔的 ID)
  2. @weight (匹配權(quán)值)
  3. @rank (等同 weight)
  4. @relevance (等同 weight)
  5. @random (隨機(jī)順序返回結(jié)果)

@rank 和 @relevance 只是 @weight 的別名。

SPH_SORT_EXPR 模式

表達(dá)式排序模式使您可以對(duì)匹配項(xiàng)按任何算術(shù)表達(dá)式排序,表達(dá)式中的項(xiàng)可以是屬性值,內(nèi)部屬性(@id和@weight),算術(shù)運(yùn)算符和一些內(nèi)建的函數(shù)。例如:

$cl->SetSortMode ( SPH_SORT_EXPR,

"@weight + ( user_karma + ln(pageviews) )*0.1" );

支持的運(yùn)算符和函數(shù)如下。它們是模仿MySQL設(shè)計(jì)的。函數(shù)接受參數(shù),參數(shù)的數(shù)目根據(jù)具體函數(shù)的不同而不同。

  1. 運(yùn)算符: +, -, *, /, <, > <=, >=, =, <>.
  2. 布爾操作符: AND, OR, NOT.
  3. 無(wú)參函數(shù): NOW().
  4. 一元函數(shù)(一個(gè)參數(shù)): ABS(), CEIL(), FLOOR(), SIN(), COS(), LN(), LOG2(), LOG10(), EXP(), SQRT(), BIGINT().
  5. 二元函數(shù)(兩個(gè)參數(shù)): MIN(), MAX(), POW(), IDIV().
  6. 其他函數(shù): IF(), INTERVAL(), IN(), GEODIST().

參考來(lái)源[ ]

Sphinx使用手冊(cè)導(dǎo)航

安裝

支持的操作系統(tǒng)|需要的工具|在Linux、BSD上安裝Sphinx|在Windows上安裝Sphinx|已知的安裝問(wèn)題和解決辦法|Sphinx快速入門(mén)教程

建立索引

數(shù)據(jù)源|屬性|MVA|索引|源數(shù)據(jù)的限制|字符集、大小寫(xiě)轉(zhuǎn)換和轉(zhuǎn)換表|SQL 數(shù)據(jù)源|xmlpipe 數(shù)據(jù)源|xmlpipe2 數(shù)據(jù)源|Python 數(shù)據(jù)源|實(shí)時(shí)索引更新|索引合并

搜索

匹配模式|布爾查詢(xún)語(yǔ)法|擴(kuò)展查詢(xún)語(yǔ)法|權(quán)值計(jì)算|排序模式|結(jié)果分組|分布式搜索|MySQL 協(xié)議支持與SphinxQL

命令行工具參考

indexer命令參考|searchd命令參考|search命令參考|spelldump命令參考|indextool命令參考

MySQL存儲(chǔ)引擎

SphinxSE 概覽|安裝 SphinxSE|使用 SphinxSE|通過(guò) MySQL 生成片段