[ https://issues.apache.org/jira/browse/SOLR-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751230#action_12751230 ]
Hoss Man commented on SOLR-1172: -------------------------------- I haven't looked into this in depth, but skimming QueryParsing.java i *think* this is because getId is using Character.isJavaIdentifierStart and Character.isJavaIdentifierPart ... we should probably just be looking for anything that is not ")" or "," (since those are the only function query special characters) FYI: in the original bug report, the exception is missleading ... the problem there is that a quoted string was passed where an (unquoted) field name was expected ... however if the unquoted field name was used, then an exception like the one Trey posted would have occured. > Hyphenation in Query Boost Function > ----------------------------------- > > Key: SOLR-1172 > URL: https://issues.apache.org/jira/browse/SOLR-1172 > Project: Solr > Issue Type: Bug > Components: search > Affects Versions: 1.3 > Environment: Windows, PC > Reporter: Yao Ge > > I have a field named "last-modified" that I like to use in bf (Boot > Functions) parameter: recip(rord(last-modified),1,1000,1000) in > DisMaxRequestHander. > However the Solr query parser complain about the syntax of the formula. > {quote} > The request sent by the client was syntactically incorrect > (org.apache.lucene.queryParser.ParseException: Expected identifier at pos 11 > str='recip(rord("last-modified"),1,1000,1000)'). > {quote} > {code} > SEVERE: org.apache.solr.common.SolrException: > org.apache.lucene.queryParser.ParseException: Expected identifier at pos 11 > str='recip(rord("last-modified"),1,1000,1000)' > at > org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:101) > at > org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:148) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:131) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1204) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:303) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:232) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) > at > org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583) > at > org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) > at java.lang.Thread.run(Unknown Source) > Caused by: org.apache.lucene.queryParser.ParseException: Expected identifier > at pos 11 str='recip(rord("last-modified"),1,1000,1000)' > at > org.apache.solr.search.QueryParsing$StrParser.getId(QueryParsing.java:565) > at > org.apache.solr.search.FunctionQParser.parseId(FunctionQParser.java:73) > at > org.apache.solr.search.ValueSourceParser$2.parse(ValueSourceParser.java:79) > at > org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:187) > at > org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:113) > at > org.apache.solr.search.ValueSourceParser$5.parse(ValueSourceParser.java:112) > at > org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:187) > at > org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:113) > at > org.apache.solr.search.FunctionQParser.parse(FunctionQParser.java:40) > at > org.apache.solr.search.DismaxQParser.parse(DisMaxQParserPlugin.java:208) > at org.apache.solr.search.QParser.getQuery(QParser.java:88) > at > org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:82) > ... 17 more > {code} -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.