Uploaded image for project: 'Solr'
  1. Solr
  2. SOLR-7351

MoreLikeThis component doesn't work with dates

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Critical
    • Resolution: Unresolved
    • 5.0
    • None
    • MoreLikeThis
    • None

    Description

      A simple query on an index which has a TrieDate (at least this is my date type)

      <dynamicField name="*_dt"  type="date"    indexed="true"  stored="true" />
      ...
      <fieldType name="date" class="solr.TrieDateField" precisionStep="0" positionIncrementGap="0"/>
      

      Query for:
      http://localhost:8983/solr/tj13/select?q=testDate_dt%3A%221948-09-28T22%3A00%3A00Z%22&wt=json&indent=true&mlt=true&mlt.fl=testDate_dt

      results in:

      ERROR - 2015-04-06 08:36:52.059; org.apache.solr.common.SolrException; org.apache.solr.common.SolrException: Invalid Date String:'-670816800000'
              at org.apache.solr.schema.TrieDateField.parseMath(TrieDateField.java:150)
              at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:436)
              at org.apache.solr.schema.TrieField.readableToIndexed(TrieField.java:414)
              at org.apache.solr.schema.TrieField.toInternal(TrieField.java:449)
              at org.apache.solr.schema.FieldType$DefaultAnalyzer$1.incrementToken(FieldType.java:484)
              at org.apache.lucene.queries.mlt.MoreLikeThis.addTermFrequencies(MoreLikeThis.java:822)
              at org.apache.lucene.queries.mlt.MoreLikeThis.retrieveTerms(MoreLikeThis.java:745)
              at org.apache.lucene.queries.mlt.MoreLikeThis.like(MoreLikeThis.java:586)
              at org.apache.solr.handler.MoreLikeThisHandler$MoreLikeThisHelper.getMoreLikeThis(MoreLikeThisHandler.java:374)
              at org.apache.solr.handler.component.MoreLikeThisComponent.getMoreLikeThese(MoreLikeThisComponent.java:370)
              at org.apache.solr.handler.component.MoreLikeThisComponent.process(MoreLikeThisComponent.java:123)
              at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:227)
              at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:144)
              at org.apache.solr.core.SolrCore.execute(SolrCore.java:2006)
              at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:777)
              at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:413)
              at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:204)
              at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419)
              at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
              at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
              at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
              at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
              at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384)
              at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
              at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
              at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
              at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
              at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154)
              at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
              at org.eclipse.jetty.server.Server.handle(Server.java:368)
              at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
              at org.eclipse.jetty.server.BlockingHttpConnection.handleRequest(BlockingHttpConnection.java:53)
              at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:942)
              at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1004)
              at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
              at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
              at org.eclipse.jetty.server.BlockingHttpConnection.handle(BlockingHttpConnection.java:72)
              at org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run(SocketConnector.java:264)
              at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
              at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
              at java.lang.Thread.run(Thread.java:745)
      

      I think it's weird that solr has the correct date, gives a long to the MoreLikeThis component and when the tokenizer tries to parse the date it throws an exception.

      Attachments

        Issue Links

          Activity

            People

              Unassigned Unassigned
              bogandy Bogdan Marinescu
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated: