Jack's solution works, but I really, truly, strongly recommend that you follow the usual Java variable-naming conventions for your fields. In fact, I tend to use only lower case and underscores.
The reason is that you'll run into this again and again and again. Your front-end will forget to put the function in. You'll spend a lot of hours chasing this down that you could spend doing _useful_ work. The next person to inherit this project will fall over this as well. And on and on and on..... There, rant ended <G>.. Best, Erick On Wed, Mar 19, 2014 at 5:36 AM, Marcin Rzewucki <mrzewu...@gmail.com> wrote: > Wow, that was fast reply :) > It works. Thank you! > > > On 19 March 2014 13:24, Jack Krupansky <j...@basetechnology.com> wrote: > >> For any "improperly" named field (that don't use the java identifier >> conventions), you simply need to use the field function with the field name >> in apostrophes: >> >> div(acc_curr_834_2-1900_tl,100000000) >> >> becomes: >> >> div(field('acc_curr_834_2-1900_tl'),100000000) >> >> -- Jack Krupansky >> >> -----Original Message----- From: Marcin Rzewucki >> Sent: Wednesday, March 19, 2014 8:13 AM >> To: solr-user@lucene.apache.org >> Subject: frange and field with hyphen >> >> >> Hi everyone, >> >> I got the following issue recently. I'm trying to use frange on a field >> which has hyphen in name: >> >> <lst name="params"> >> <str name="debugQuery">true</str> >> <str name="indent">on</str> >> <str name="q">*:*</str> >> <str name="wt">xml</str> >> <arr name="fq"> >> <str> >> {!frange l=1 u=99999999999999}sub(if(100000000, >> div(acc_curr_834_2-1900_tl, >> 100000000), 0), 1) >> </str> >> </arr> >> <str name="version">2.2</str> >> </lst> >> </lst> >> >> I got the following error: >> >> DEBUG - 2014-03-19 12:11:53.805; org.eclipse.jetty.servlet.ServletHandler; >> chain=SolrRequestFilter->default >> DEBUG - 2014-03-19 12:11:53.805; >> org.eclipse.jetty.servlet.ServletHandler$CachedChain; call filter >> SolrRequestFilter >> ERROR - 2014-03-19 12:11:53.806; org.apache.solr.common.SolrException; >> org.apache.solr.common.SolrException: undefined field: "acc_curr_834_2" >> at >> org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1172) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:361) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:223) >> at >> org.apache.solr.search.ValueSourceParser$11.parse( >> ValueSourceParser.java:174) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:352) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:223) >> at >> org.apache.solr.search.ValueSourceParser$73.parse( >> ValueSourceParser.java:775) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:352) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:223) >> at >> org.apache.solr.search.ValueSourceParser$18.parse( >> ValueSourceParser.java:252) >> at >> org.apache.solr.search.FunctionQParser.parseValueSource( >> FunctionQParser.java:352) >> at >> org.apache.solr.search.FunctionQParser.parse(FunctionQParser.java:68) >> at org.apache.solr.search.QParser.getQuery(QParser.java:141) >> at >> org.apache.solr.search.SolrReturnFields.add(SolrReturnFields.java:285) >> at >> org.apache.solr.search.SolrReturnFields.parseFieldList( >> SolrReturnFields.java:112) >> at >> org.apache.solr.search.SolrReturnFields.<init>(SolrReturnFields.java:98) >> at >> org.apache.solr.search.SolrReturnFields.<init>(SolrReturnFields.java:74) >> at >> org.apache.solr.handler.component.QueryComponent. >> prepare(QueryComponent.java:122) >> at >> org.apache.solr.handler.component.SearchHandler.handleRequestBody( >> SearchHandler.java:200) >> at >> org.apache.solr.handler.RequestHandlerBase.handleRequest( >> RequestHandlerBase.java:135) >> at org.apache.solr.core.SolrCore.execute(SolrCore.java:1916) >> at >> org.apache.solr.servlet.SolrDispatchFilter.execute( >> SolrDispatchFilter.java:780) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter( >> SolrDispatchFilter.java:427) >> at >> org.apache.solr.servlet.SolrDispatchFilter.doFilter( >> SolrDispatchFilter.java:217) >> at >> org.eclipse.jetty.servlet.ServletHandler$CachedChain. >> doFilter(ServletHandler.java:1419) >> at >> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle( >> ScopedHandler.java:137) >> at >> org.eclipse.jetty.security.SecurityHandler.handle( >> SecurityHandler.java:557) >> at >> org.eclipse.jetty.server.session.SessionHandler. >> doHandle(SessionHandler.java:231) >> at >> org.eclipse.jetty.server.handler.ContextHandler. >> doHandle(ContextHandler.java:1075) >> at >> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) >> at >> org.eclipse.jetty.server.session.SessionHandler. >> doScope(SessionHandler.java:193) >> at >> org.eclipse.jetty.server.handler.ContextHandler. >> doScope(ContextHandler.java:1009) >> at >> org.eclipse.jetty.server.handler.ScopedHandler.handle( >> ScopedHandler.java:135) >> at >> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle( >> ContextHandlerCollection.java:255) >> at >> org.eclipse.jetty.server.handler.HandlerCollection. >> handle(HandlerCollection.java:154) >> at >> org.eclipse.jetty.server.handler.HandlerWrapper.handle( >> HandlerWrapper.java:116) >> at org.eclipse.jetty.server.Server.handle(Server.java:364) >> at >> org.eclipse.jetty.server.AbstractHttpConnection.handleRequest( >> AbstractHttpConnection.java:489) >> at >> org.eclipse.jetty.server.BlockingHttpConnection.handleRequest( >> BlockingHttpConnection.java:53) >> at >> org.eclipse.jetty.server.AbstractHttpConnection.headerComplete( >> AbstractHttpConnection.java:942) >> at >> org.eclipse.jetty.server.AbstractHttpConnection$ >> RequestHandler.headerComplete(AbstractHttpConnection.java:1004) >> at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640) >> at >> org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235) >> at >> org.eclipse.jetty.server.BlockingHttpConnection.handle( >> BlockingHttpConnection.java:72) >> at >> org.eclipse.jetty.server.bio.SocketConnector$ConnectorEndPoint.run( >> SocketConnector.java:264) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob( >> QueuedThreadPool.java:608) >> at >> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run( >> QueuedThreadPool.java:543) >> at java.lang.Thread.run(Thread.java:744) >> >> I checked this query on solr 4.5 and 4.7. It works only for fields without >> hyphen in name. >> Could it be a bug ? Otherwise, could you let me know what am I doing wrong >> ? >> >> Kind regards. >>