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

Reply via email to