[
https://issues.apache.org/jira/browse/SOLR-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12745241#action_12745241
]
Trey commented on SOLR-1172:
----------------------------
I've encountered this issue in another context. It is being caused by invalid
parsing of Function Queries:
The following query works fine (field name: rank_i):
/solr/select/?q.op=AND&start=0&rows=10&fl=*%2cscore&q={!func}product(rank_i,2)
But the following query (field name: rank-i) throws a Parse Error (returns 404):
q={!func}product(rank-i,2)
Here's the error:
HTTP ERROR: 400
org.apache.lucene.queryParser.ParseException: Expected ',' at position 14 in
'product(rank_i,2)'
I confirmed that the problem occurs whenever a hyphen/minus/dash occurs in the
field name by putting in a fake field name:
q={!func}product(MadeUpField-Name,2)
HTTP ERROR: 400
undefined field MadeUpField
So, it looks like it is trying to parse the "-" in the field name as an
operator instead of as part of the field name. Is it bad form to include a
hyphen in a field name... I've never had issues with it anywhere else in the
past. FYI, I've confirmed this behavior on 1.4 nightly builds from both 6/16
and 8/6 and both forms of the function query syntax ({!func} and _val_). Also,
I have this problem with seemingly all function queries (ord, sum, etc.), not
just "product."
> 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.