hi,
I am working with solr4.1.
When I don't parseValueSource, my function query works well. The code is
like this:
public class DateSourceParser extends ValueSourceParser {
        @Override
        public void init(NamedList namedList) {
        }
        @Override
        *public ValueSource parse(FunctionQParser fp) throws SyntaxError {      
        
                return new DateFunction();
        }*
}

When I want to use the ValueSource, like this:
public class DateSourceParser extends ValueSourceParser {
        @Override
        public void init(NamedList namedList) {
        }
        @Override
        *public ValueSource parse(FunctionQParser fp) throws SyntaxError {
                ValueSource source = fp.parseValueSource();
                return new DateFunction(source);
        }*
}

fp.parseValueSource() throws an error like this:
ERROR [org.apache.solr.core.SolrCore] -
org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError:
Expected identifier at pos 12 str='dateDeboost()'
        at
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:147)
        at
org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:187)
        at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135)
        at org.apache.solr.core.SolrCore.execute(SolrCore.java:1816)
        at
org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:448)
        at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:269)
        at
com.caucho.server.dispatch.FilterFilterChain.doFilter(FilterFilterChain.java:70)
        at
com.caucho.server.webapp.WebAppFilterChain.doFilter(WebAppFilterChain.java:173)
        at
com.caucho.server.dispatch.ServletInvocation.service(ServletInvocation.java:229)
        at
com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:274)
        at com.caucho.server.port.TcpConnection.run(TcpConnection.java:514)
        at com.caucho.util.ThreadPool.runTasks(ThreadPool.java:527)
        at com.caucho.util.ThreadPool.run(ThreadPool.java:449)
        at java.lang.Thread.run(Thread.java:662)
Caused by: org.apache.solr.search.SyntaxError: Expected identifier at pos 12
str='dateDeboost()'
        at
org.apache.solr.search.QueryParsing$StrParser.getId(QueryParsing.java:747)
        at
org.apache.solr.search.QueryParsing$StrParser.getId(QueryParsing.java:726)
        at
org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:345)
        at
org.apache.solr.search.FunctionQParser.parseValueSource(FunctionQParser.java:223)
        at
org.sling.solr.custom.DateSourceParser.parse(DateSourceParser.java:24)
        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:142)
        at
org.apache.solr.search.BoostQParserPlugin$1.parse(BoostQParserPlugin.java:61)
        at org.apache.solr.search.QParser.getQuery(QParser.java:142)
        at
org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:117)
        ... 13 more


so, how to make fp.parseValueSource() work?

Thanks!!!

sling





--
View this message in context: 
http://lucene.472066.n3.nabble.com/In-a-functon-query-I-can-t-get-the-ValueSource-when-extend-ValueSourceParser-tp4103026.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to