You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-dev@lucene.apache.org by "Yao Ge (JIRA)" <ji...@apache.org> on 2009/05/18 20:04:45 UTC

[jira] Created: (SOLR-1172) Hyphenation in Query Boost Function

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. 

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


[jira] Commented: (SOLR-1172) Hyphenation in Query Boost Function

Posted by "Trey (JIRA)" <ji...@apache.org>.
    [ 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.


[jira] Updated: (SOLR-1172) Hyphenation in Query Boost Function

Posted by "Yao Ge (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SOLR-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yao Ge updated SOLR-1172:
-------------------------

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

{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}

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

{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}


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


[jira] Updated: (SOLR-1172) Hyphenation in Query Boost Function

Posted by "Yao Ge (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SOLR-1172?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Yao Ge updated SOLR-1172:
-------------------------

    Description: 
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}

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

{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}


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


[jira] Commented: (SOLR-1172) Hyphenation in Query Boost Function

Posted by "Hoss Man (JIRA)" <ji...@apache.org>.
    [ 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.