Solr根据出版物的开始和结束日期提取文件

时间:2016-07-14 17:27:49

标签: solr

如何根据发布日期范围查询所有已发布的文档。我的索引上有以下日期时间字段。

<field name="title" type="string" indexed="true" termOffsets="true" stored="true" termPositions="true" termVectors="true" multiValued="false"/>
<field name="publishStart" type="date" indexed="true" stored="true" multiValued="false"/>
<field name="publishEnd" type="date" indexed="true" stored="true" multiValued="false"/>

我想实现像这样的SQL查询条件语句:

(publishStart <= now() AND publishStart is not null) AND (publishEnd >= now() OR publishEnd is null)

e.g。

查询应与以下文档匹配:

让now()= 2016-06-14T08:00:00Z

      title:        Article 1
      publishStart: 2016-06-14T07:00:00Z

      title:        Article 2
      publishStart: 2016-06-14T07:00:00Z
      publishEnd:   2016-06-15T07:00:00Z

:)谢谢

1 个答案:

答案 0 :(得分:0)

您正在寻找的查询是

publishStart:[* TO NOW]  AND (-publishEnd:[* TO NOW] AND publishEnd:[* TO *]) 

请注意,Solr没有简单的方法来指定您需要空值,因此在查询的第二部分,我们将获得所有结果并排除我们不需要的内容。 Here是一篇关于此事的有趣文章。