2013-04-08 25 views
0

好吧夥計。所以我想以這樣的方式來查詢我的查詢,它會碰到這個相同的過濾器緩存,我真的不想做的是計算我的代碼中的一週的開始,並基於此結構查詢。有沒有辦法讓solr根據一週回來?Solr:查詢本週添加的文檔的最佳方式是什麼?

我不可能找到任何位置: http://docs.lucidworks.com/display/lweug/Solr+Date+Format 使用[NOW/DAY-7DAYS到現在/天+ 1DAY]不會幫助,因爲它不知道開始和周結束。

回答

0

是否包括在客戶端計算和基於該制定的查詢,因此,很可能不是你要找的:)

在java中(如果您的周從星期一開始):

客戶端:

(new Date().getTime()-345600000)/604800000 = 2257 

查詢:

select?q=*:*&fq={!frange%20l=2257%20u=2258}div(sub(field(last_update),345600000),604800000)&wt=json&indent=true 
+0

能否請您解釋一下這是什麼代碼正在做什麼。對不起,我沒有明白。這就是我現在正在使用的pysolr「fq = created_dt:[NOW/DAY - 」+ str(datetime.datetime.utcnow()。weekday())+「DAYS TO NOW/DAY + 1DAY]」 – phonegapnoob 2013-04-09 05:13:56

+0

604800000 is一週內的毫秒數。 new Date().getTime()會給出自1970年1月1日以來的毫秒數。除以604800000,我們得到當前的週數 - 稱之爲n。 如果文檔的last_update字段包含文檔的創建日期,則div(字段(last_update),604800000)將給出創建文檔的那一週。它應該在n&n + 1之間。 – user2023507 2013-04-09 06:30:45

+0

自從1970年1月1日是星期四以來,如果將星期一定爲本週開始,我會從中減去4天(345600000毫秒)! – user2023507 2013-04-09 06:33:37

相關問題