Searching on a single point in time would be extremely limiting because it
has millisecond precision. So range queries would be the only real way to
search the DatePointField.

I've used this construct many times on the DatePointField:

[2000-05-01T00:00:01Z TO 2019-06-02T00:00:01Z]


Joel Bernstein
http://joelsolr.blogspot.com/


On Thu, Dec 12, 2019 at 7:19 AM Mel Mason <mel.ma...@bodleian.ox.ac.uk>
wrote:

> I need to store date ranges in the index. While DatePointField can be
> queried using date ranges, the actual value can only be a single date -
> it can't represent a range of dates as far as I know.
>
> On 12/12/2019 12:11, Joel Bernstein wrote:
> > So something like this should work:
> >
> > [2000-05-01T00:00:01Z TO 2019-06-02T00:00:01Z]
> >
> > Joel Bernstein
> > http://joelsolr.blogspot.com/
> >
> >
> > On Thu, Dec 12, 2019 at 7:08 AM Joel Bernstein <joels...@gmail.com>
> wrote:
> >
> >> With the DatePointField you can still do the range query, but I believe
> >> you'll need to specify the full ISO date string: 2000-05-01T01:01:01Z
> >>
> >> Joel Bernstein
> >> http://joelsolr.blogspot.com/
> >>
> >>
> >> On Thu, Dec 12, 2019 at 6:46 AM Mel Mason <mel.ma...@bodleian.ox.ac.uk>
> >> wrote:
> >>
> >>> Unfortunately I need a date range field, e.g [2000-05-01 TO
> 2019-06-02].
> >>> DatePointFields can't represent that as far as I know.
> >>>
> >>> On 12/12/2019 11:40, Joel Bernstein wrote:
> >>>> There is a field type in the schema called pdate:
> >>>>
> >>>> <fieldType name="pdate" class="solr.DatePointField" docValues="true"/>
> >>>>
> >>>> This should work for you.
> >>>>
> >>>> The timeseries Streaming Expression uses the JSON facet API for range
> >>>> faceting and works really well.
> >>>>
> >>>>
> >>>>
> >>>>
> >>>> Joel Bernstein
> >>>> http://joelsolr.blogspot.com/
> >>>>
> >>>>
> >>>> On Thu, Dec 12, 2019 at 6:28 AM Mel Mason <
> mel.ma...@bodleian.ox.ac.uk>
> >>>> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> I'm trying to have a range facet on a field of type
> >>> solr.DateRangeField.
> >>>>> As far as I can tell, this isn't possible with JSONFacet, only with
> the
> >>>>> old facet system - a quick google turns up several other people with
> >>> the
> >>>>> same problem. When using JSONFacet I get problems with this line of
> >>>>> code:
> >>>>>
> >>>>>
> >>>
> https://github.com/apache/lucene-solr/blob/master/solr/core/src/java/org/apache/solr/search/facet/FacetRange.java#L255
> >>>>> It looks like during the change to JSONFacet the range facets have
> been
> >>>>> restricted to only allow Trie or PointField fields. Is this likely to
> >>> be
> >>>>> fixed in future updates, or were there problems with using
> >>>>> DateRangeFields? I could use the old parameter facet system, but
> there
> >>>>> are features in JSONFacet I need.
> >>>>>
> >>>>> For completeness, the error I get:
> >>>>>
> >>>>> org.apache.solr.common.SolrException: Unable to range facet on
> >>>>> field:date_dtr
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetRangeProcessor.getCalcForField(FacetRange.java:238)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetRangeProcessor.<init>(FacetRange.java:122)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetRange.createFacetProcessor(FacetRange.java:65)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:397)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetProcessor.processSubs(FacetProcessor.java:475)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetProcessor.fillBucket(FacetProcessor.java:432)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetQueryProcessor.process(FacetQuery.java:64)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.search.facet.FacetRequest.process(FacetRequest.java:401)
> >>>>>           at
> >>>>>
> org.apache.solr.search.facet.FacetModule.process(FacetModule.java:146)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:298)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:199)
> >>>>>           at
> org.apache.solr.core.SolrCore.execute(SolrCore.java:2566)
> >>>>>           at
> >>>>> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:756)
> >>>>>           at
> >>> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:542)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:397)
> >>>>>           at
> >>>>>
> >>>
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:343)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1602)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:540)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1588)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1345)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1557)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:335)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>           at org.eclipse.jetty.server.Server.handle(Server.java:502)
> >>>>>           at
> >>>>> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> >>>>>           at org.eclipse.jetty.io
> >>>>>
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> >>>>>           at org.eclipse.jetty.io
> >>>>> .FillInterest.fillable(FillInterest.java:103)
> >>>>>           at org.eclipse.jetty.io
> >>>>> .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> >>>>>           at
> >>>>>
> >>>
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> >>>>>           at java.lang.Thread.run(Thread.java:748)
> >>>>>
> >>>>> Thanks,
> >>>>>
> >>>>> --
> >>>>> Mel Mason
> >>>>> Software Engineer
> >>>>> Bodleian Digital Library Systems and Services
> >>>>> Osney One
> >>>>> Mon-Thurs
> >>>>>
> >>>>> 01865 280031
> >>>>> mel.ma...@bodleian.ox.ac.uk
> >>>>>
> >>>>>
>

Reply via email to