如何使用apache solr搜索日期

我想从下面的solr搜索数据

这是我的两张桌子:

在这里输入图像描述

在这里输入图像描述

那么我该如何使用solr来做这个日期搜索......

编辑

Iam使用SolrPhpClient。

这是我的schema.xml中的字段:

    <fields>
   <field name="id" type="string" indexed="true" stored="true" required="true"/>
   <field name="event_name" type="text_general" indexed="true" stored="true"/>
   <field name="event_category_id" type="string" indexed="true" stored="true"/>
   <field name="cat_name" type="text_general" indexed="true" stored="true"/>
   <field name="event_sub_category_id" type="string" indexed="true" stored="true"/>
   <field name="sub_cat_name" type="text_general" indexed="true" stored="true"/>
   <field name="event_location" type="text_general" indexed="true" stored="true"/>
   <field name="org_id" type="string" indexed="false" stored="true"/>
   <field name="org_name" type="text_general" indexed="true" stored="true"/>
   <field name="event_city" type="text_general" indexed="true" stored="true"/>

   <field name="multiple_tags" type="text_general" indexed="true" stored="true" multiValued="true" />

   <field name="multiple_start_dates" type="date" indexed="true" stored="true" multiValued="true" />

   <field name="event_twitter_url" type="text_general" indexed="false" stored="true"/>
   <field name="event_fb_url" type="text_general" indexed="false" stored="true"/>
   <field name="search_text" type="text_general" indexed="true" stored="false" multiValued="true" />
    <copyField source="event_name" dest="search_text" />
    <copyField source="cat_name" dest="search_text" />
    <copyField source="org_name" dest="search_text" />

    <copyField source="multiple_tags" dest="search_text" />

    <dynamicField name="*" type="string" multiValued="true" indexed="true" stored="true" />
   <field name="_version_" type="long" indexed="true" stored="true"/>
   <field name="content" type="text_general" indexed="false" stored="true" multiValued="true"/>
   <field name="text" type="text_general" indexed="true" stored="false" multiValued="true"/>
 </fields>

以下图像是具有所有查询的solr管理员:

在这里输入图像描述

所以当我在q搜索multiple_start_dates:2013-10-24T00:00:00Z它会返回invalid date string错误......


从架构看来,您没有为表中的日期字段建立索引,一旦索引日期字段(如创建和修改的列),就可以进行如下查询:

(created:[NOW-1MONTH TO NOW]) //for current month

(created:[NOW-3MONTH TO NOW-1MONTH]) //created within last three months but not in current month

等等,用其他时间单位和(+/-)运算符做一些实验,你会得到想要的查询。

链接地址: http://www.djcxy.com/p/16479.html

上一篇: How to search with date using apache solr

下一篇: [program name].exe has stopped working