2009-08-26 151 views
0

我想在給定的日期後得到所有結果,你可以用solr來做到這一點嗎?我可以限制搜索到特定的日期範圍嗎?

http://lucene.apache.org/solr/

現在的結果是搜索整個結果集,我要篩選給定日期後任何事情。

更新 這還不適用於我。

我返回DOC:

嘗試:

http://www.example.com:8085/solr/select/?q=test&version=2.2&start=0&rows=10&indent=on&indexed_at:2009-08-27T13%3A15%3A27.73Z

<doc> 
<str name="apptype">Forum</str> 
<str name="collapse">forum:334</str> 
<str name="content"> testing </str> 
<str name="contentid">357</str> 
<str name="createdby">some_user</str> 
<str name="date">20090819</str> 
<str name="dummy_id">1</str> 
<int name="group">5</int> 
<date name="indexed_at">2009-08-25T16:48:45.121Z</date> 
<str name="rating">000.0</str> 
<str name="rawcontent"><p>testing</p></str> 
− 
<arr name="roles"> 
<str>1</str> 
<str>2</str> 
<str>3</str> 
<str>4</str> 
<str>14</str> 
<str>15</str> 
<str>16</str> 
</arr> 
<int name="section">79</int> 
<int name="thread">334</int> 
<str name="title">testing</str> 
<str name="titlesort">testing</str> 
<str name="type">forum</str> 
− 
<str name="unique_id"> 
BLAHBLAH|357 
</str> 
<str name="url">/blahey/f/79/p/334/357.aspx#357</str> 
<str name="user">21625</str> 
<str name="username">some_user</str> 
</doc> 

回答

4

是的,你可以我假設你有要篩選上的日期值的字段。然後,你做

yourdatefield:[2008-08-27T23:59:59.999Z TO *] 

樣本URL將是localhost:8983/Solr的/選擇Q = yourdatefield:[2008-08-27T23:59:59.999Z TO *]

要提交的日期部分作爲查詢

所以在Q的類似值

localhost:8983/solr/select/q=(text:test+AND+indexed_at:`[2009-08-27T13:A15:A27.73Z TO *`]) 

所以整個查詢包含在q查詢字符串參數中。

日期的格式是ISO 8601

+0

它必須使用IO你爲什麼這樣做yourdatefield:?而不是yourdatefield = – mrblah 2009-08-27 13:33:01

+0

IO你的意思是ISO?是的,這就是SOLR格式化日期的方式,而使用的原因是:而不是=是=表示HTTP上下文中的鍵和值之間的分隔,其中as:是SOLR上下文中鍵和值的分離。 – olle 2009-08-27 14:10:26

+0

Olle,看到我的更新,似乎沒有工作。我發佈了重新調用的xml文檔節點,如果有幫助嗎? – mrblah 2009-08-27 21:09:32

2

您可以添加一個自動時間戳的文件,因爲它們使用索引:

<field name="timestamp" type="date" indexed="true" stored="true" default="NOW" multiValued="false"/> 

在schema.xml中。默認架構已經註釋掉了,所以如果你複製了默認值,你只需要取消它的註釋。

您可以添加它並使用olle的建議搜索模式來查找某個日期之後索引的文檔。 (你不得不更新yourdatefield時間戳或任何你在XML名稱領域

+0

非常感謝那個提示danivo! – mrblah 2009-08-27 13:13:49

+0

我沒有看到在我的schema.xml中,我確實有:和<字段名= 」日期「 類型= 」字符串「 索引= 」真「 存儲= 」真「/>和<字段名= 」indexed_at「 類型=」 date「indexed =」true「stored =」true「default =」NOW「multiValued =」false「/>。和 mrblah 2009-08-27 21:11:18

+0

啊這將是indexed_at場 作爲解決您的問題,我覺得歐萊與把indexed_at澄清正確答案:起始日期爲*]在您的通話q =部分。 – danivovich 2009-08-28 13:10:23