我想从Solr中搜索数据,如下所示
这是我的两张桌子:
因此,我该如何使用Solr进行此日期搜索。...
编辑
我为此使用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管理员:
因此,当我multiple_start_dates:2013-10-24T00:00:00Z
在q
其中搜索时返回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
依此类推,对其他时间单位和(+/-)运算符进行一些实验,您将获得所需的查询。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句