lucene-solr-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Trey (JIRA)" <j...@apache.org>
Subject [jira] Commented: (SOLR-1172) Hyphenation in Query Boost Function
Date Wed, 19 Aug 2009 23:36:14 GMT

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


Mime
View raw message