[
https://issues.apache.org/jira/browse/SOLR-7351?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14481704#comment-14481704
]
Erick Erickson commented on SOLR-7351:
--------------------------------------
Hmmm, throwing this error isn't very helpful I'll agree. Though does MLT even
work on non-text fields? Not quite sure what MLT on a date field _should_
return on numeric types (which dates really are). To me the most "natural"
interpretation would be some kind of numeric comparison, which you can already
do with a range query.
Even so, catching this up-front and returning a more helpful error like "MLT
only supported for text fields" would be better.
This appears to be a dup of SOLR-4860, I'll link it in a bit.
> MoreLikeThis component doesn't work with dates
> ----------------------------------------------
>
> Key: SOLR-7351
> URL: https://issues.apache.org/jira/browse/SOLR-7351
> Project: Solr
> Issue Type: Bug
> Components: MoreLikeThis
> Affects Versions: 5.0
> Reporter: Bogdan Marinescu
> Priority: Critical
>
> A simple query on an index which has a TrieDate (at least this is my date
> type)
> {code}
> <dynamicField name="*_dt" type="date" indexed="true" stored="true" />
> ...
> <fieldType name="date" class="solr.TrieDateField" precisionStep="0"
> positionIncrementGap="0"/>
> {code}
> 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:
> {code}
> 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)
> {code}
> 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.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]