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