[ 
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.

Reply via email to