如何根据发布日期范围查询所有已发布的文档。我的索引上有以下日期时间字段。
<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
:)谢谢
答案 0 :(得分:0)
您正在寻找的查询是
publishStart:[* TO NOW] AND (-publishEnd:[* TO NOW] AND publishEnd:[* TO *])
请注意,Solr没有简单的方法来指定您需要空值,因此在查询的第二部分,我们将获得所有结果并排除我们不需要的内容。 Here是一篇关于此事的有趣文章。