-->

从两个独立的字段作为子实体Solr的多值时间范围(Solr Multivalued date ran

2019-11-02 07:03发布

我是一个Apache Solr实现初学者。 我的数据-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"/>

因此,对于一个单一的事件,可以有多个请求,因此多个“起始日期”和“EXPIRE_DATE”。 现在,我需要找到一个日期范围内,而不是在指定日期范围内的所有请求的所有请求,但没有得到任何办法。

Answer 1:

指数开始日期和有效期为单一的多值字段按事件如event_date 。 而不是泡吧他们逼到两个字段。
让每个事件都会有的开始日期和到期日合并,一个进入fq=start_date:[NOW TO *] AND expire_date:[* TO NOW]查询将正常工作适合你。
让现场的动态,这样你就不需要配置。



Answer 2:

我发现了一个很简单的方法来解决问题,alhamdulillah。 它是一种简单的查询图案 -

-(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]) 

这做我的实际需要。



文章来源: Solr Multivalued date range from two separate field as sub entity