Solr多值日期范围从两个单独的字段作为子实体

Solr多值日期范围从两个单独的字段作为子实体,solr,date-range,multivalue,Solr,Date Range,Multivalue,我是一名Apache Solr初学者。 My data-config.xml包含以下代码 <entity name="event"> <field column="event_id" name="id" /> ... <entity name="request_history" query="select request_date, request_expiry_date from request_history wh

我是一名Apache Solr初学者。 My data-config.xml包含以下代码

<entity name="event">                        
<field column="event_id" name="id" />
...
<entity name="request_history" query="select request_date, request_expiry_date from request_history where id=event.id">
   <field column="request_date" name="start_date" />
   <field column="request_expiry_date" name="expire_date" />
</entity>

...
下面是shcema.xml文件中针对这些字段的内容

<field name="start_date" type="tdate" indexed="true" stored="true" multiValued="true"/>
<field name="expire_date" type="tdate" indexed="true" stored="true" multiValued="true"/>


因此,对于单个事件,可以有多个请求,因此有多个“开始日期”和“到期日期”。现在,我需要查找日期范围内的所有请求,以及不在给定日期范围内的所有请求,但无法找到任何方式。

根据事件将开始日期和到期日期作为单个多值字段进行索引,例如
event\u date
。而不是把他们分成两个领域。
因此,每个事件都会有一个开始日期和到期日期的组合条目,并且
fq=start\u date:[NOW TO*]和expire\u date:[*TO NOW]
查询对您来说很好。

将字段设置为动态,这样就不需要进行配置

我找到了一个非常简单的方法来解决这个问题,阿罕杜利拉。这是一个简单的查询模式-

-(start_date: [2013-07-01T0:00:00Z TO 2013-07-18T0:00:00Z] AND end_date: [2013-07-01T0:00:00Z TO 2013-07-18T0:00:00Z]) 

这可以满足我的实际需要。

fq=start\u date:[NOW TO]和expire\u date:[TO NOW]将过滤结果。但是,是否存在将结束日期与开始日期匹配的问题???是@Jayendra,这是主要问题,实际上,请求日期是该活动的拟定组织日期。所以我这里没有初始事件日期。您可以维护事件,并使用Solr partial Update在创建事件时插入日期。