[ https://issues.apache.org/jira/browse/SOLR-161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12602038#action_12602038 ]
Mike Klaas commented on SOLR-161: --------------------------------- > It is really a Lucene query parser bug, but it wouldn't hurt to do s/(.*)-/&/ > as a workaround. Assuming my ed(1) syntax is still > >fresh. Regardless, no > query string should ever give a stack trace This might be hard to guarantee. Already there are four issues details specific ways that dismax that barf on input. A lot of the suggestions above are of the form of detecting a specific failure mode and correcting it, which does not guarantee that you will catch them all. A robust way to do it is parse the query into an AST using a grammar in a way that matches the query as well as possible (dropping the stuff that doesn't fit). Unfortunately, this is duplicative of the lucene parsing logic, and it would be nicer add a "relaxed" mode to lucene rather than pre-parsing the query. (The reparse+reassemble method is what we use, btw. It is written in python but it might be possible to translate to java.) > Dangling dash causes stack trace > -------------------------------- > > Key: SOLR-161 > URL: https://issues.apache.org/jira/browse/SOLR-161 > Project: Solr > Issue Type: Bug > Components: search > Affects Versions: 1.1.0 > Environment: Java 1.5, Tomcat 5.5.17, Fedora Core 4, Intel > Reporter: Walter Underwood > > I'm running tests from our search logs, and we have a query that ends in a > dash. That caused a stack trace. > org.apache.lucene.queryParser.ParseException: Cannot parse 'digging for the > truth -': Encountered "<EOF>" at line 1, column 23. > Was expecting one of: > "(" ... > <QUOTED> ... > <TERM> ... > <PREFIXTERM> ... > <WILDTERM> ... > "[" ... > "{" ... > <NUMBER> ... > > at org.apache.lucene.queryParser.QueryParser.parse(QueryParser.java:127) > at > org.apache.solr.request.DisMaxRequestHandler.handleRequest(DisMaxRequestHandler.java:272) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:595) > at org.apache.solr.servlet.SolrServlet.doGet(SolrServlet.java:92) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.