在SOLR中定义生日查询处理程序

时间:2013-10-08 12:40:15

标签: solr solrnet

我有一个日期字段,我想查询以获取他们的年份与今天不同的所有事件。

所以,我在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文件中使用default now values。我已经测试了这个(这不起作用):

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

如何使用字符串字段的当前日期设置默认查询值?

1 个答案:

答案 0 :(得分:0)

您要搜索的搜索关键字是日期数学。您可以在Solr reference guide中找到几个示例。

您的具体查询可能类似于:

birthdate:[* TO NOW/YEAR-1YEAR]
相关问题