2012-04-18 61 views
1

我有一個更喜歡這個查詢,我想更新以首先返回較新的文檔。根據文檔,我需要將recip(ms(NOW,mydatefield),3.16e-11,1,1)添加到我的查詢中。用更新的日期提升項目的正確方法是什麼?

但是,當我嘗試將它添加到mlt.qf或bf參數。結果保持完全一樣。

這是我的查詢:

/Solr的/ MLT?

Q = ID:cms.article.137861

& DEFTYPE = edismax

&行= 3

&縮進=上

& mlt.fl = series_id,標籤title,text

& mlt.qf = show_i d文本^ 1.1標題^ 1.1標籤^ 90

&重量= JSON

& FL = URL,標題,標籤,django_id,content_type_id

& BF = RECIP(MS(NOW,PUB_DATE), 3.16e-11,1,1)

回答

1

這是取自solr維基(其下來,但我有它緩存) 我認爲這是你在找什麼。

我怎樣才能提高新文件的分數

請按日期的明確排序(關聯記分被忽略) 使用索引時升壓是較新的文件較大 使用FunctionQuery影響成績基於日期字段。 在Solr 1.3中,使用形式recip(rord(myfield),1,1000,1000) 在Solr 1.4中,使用形式recip(ms(NOW,mydatefield),3.16e-11,1,1 ) http://lucene.apache.org/solr/api/org/apache/solr/search/function/ReciprocalFloatFunction.html http://lucene.apache.org/solr/api/org/apache/solr/search/BoostQParserPlugin.html 「ipod」查詢的完整示例分數越高,產品越新:

http://localhost:8983/solr/select?q= {:

http://localhost:8983/solr/select?q= {!提振b = RECIP(MS(NOW,manufacturedate_dt),3.16e-11,1,1)}的iPod 人們可以通過分解查詢到多個參數,簡化實現!boost b = $ dateboost v = $ qq} & dateboost = recip(ms(NOW,madeate_dt),3.16e-11,1,1)& qq = ipod 現在,主「q」參數以及「dateboost」參數可以在搜索處理程序中指定爲默認值在solrconfig.xml中,客戶端只需要傳遞「qq」即用戶查詢。

爲了增強另一種查詢類型,如dismax查詢,boost查詢的值是一個完整的子查詢,因此可以使用{!querytype}語法。或者,defType參數可用於boost本地參數,以將默認類型設置爲dismax。其他dismax參數可以被設置爲頂級參數。

http://localhost:8983/solr/select?q= {!提振B = $ dateboost V = $ QQ DEFTYPE = dismax} & dateboost = RECIP(MS(NOW,manufacturedate_dt),3.16e-11,1,1)& QF =文本& PF =文本& qq = ipod 考慮使用降低的精度來防止內存消耗過多。你會改用recip(ms(NOW/HOUR,mydatefield),3.16e-11,1,1)。請參閱本主題以獲取更多信息。

+0

上述線程鏈接丟失。 – TheOne 2012-04-18 18:30:55

+0

我已經試過這些版本。他們給我的結果完全一樣。 – TheOne 2012-04-18 19:00:09

0

顯然你的日期字段不是TrieDate

相關問題