2013-10-08 72 views
0

我有一個日期字段,我想查詢它們的年份與今天不同的所有事件。在SOLR中定義生日查詢處理程序

所以,我在schema.xml中創建另一個領域:

<field name="myDate" type="date" indexed="true" stored="false" multiValued="true" /> 
<field name="myDateString" type="text" indexed="true" stored="false" multiValued="true" /> 

<copyField source="myDate" dest="myDateString"/> 

然後我在solrconfig.xml中定義的處理程序:

<requestHandler name="/onthisday" class="solr.SearchHandler"> 
    <lst name="defaults"> 
     <str name="echoParams">explicit</str> 
     <int name="rows">15</int> 
     <str name="df">myDateString</str> 
     <str name="wt">json</str> 
     <str name="indent">true</str> 
     <str name="q">*-08-10T*</str> 
     <str name="fl">*</str> 
    </lst> 
    </requestHandler> 

使用此處理程序,我能找到所有事件在10月8日:

http://localhost:8080/solr/article/onthisday?q=*-10-07T* 

但是,我想在solrconfig.xml文件中使用默認的今天值。我已經測試過這個(不起作用):

<str name="q">*-/MONTH-/DAYT*</str> 

如何使用字符串字段的當前日期設置默認查詢值?

回答

0

您正在搜索的關鍵詞是Date Math。您可以在Solr reference guide中找到幾個示例。

您的具體問題可能是這樣的:

birthdate:[* TO NOW/YEAR-1YEAR] 
+0

它返回的最後一年之前的所有文件,假設今天是2013年10月10日,我需要2012年10月10日,2011-10-10 ,2010-10-10,.... –