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