lucene-solr-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erick Erickson <erickerick...@gmail.com>
Subject Re: join and filter query with AND
Date Thu, 20 Mar 2014 14:23:16 GMT
Well, the error message really looks like your input is
getting chopped off.

It's vaguely possible that you have some super-low limit
in your servlet container configuration that is only letting very
small packets through.

What I'd do is look in the Solr log file to see exactly what
is coming through. Because regardless of what you _think_
you're sending, it _really_ looks like Solr is getting the fq
clause with something that breaks it up. So I'd like to
absolutely nail that as being wrong before speculating.

Because I can cut/paste your fq clause just fine. Of course
it fails because I don't have the other core defined, but that
means the query has made it through query parsing while
yours hasn't in your setup.

Best,
Erick

On Thu, Mar 20, 2014 at 2:19 AM, Marcin Rzewucki <mrzewucki@gmail.com> wrote:
> Nope. There is no line break in the string and it is not feed from file.
> What else could be the reason ?
>
>
>
> On 19 March 2014 17:57, Erick Erickson <erickerickson@gmail.com> wrote:
>
>> It looks to me like you're feeding this from some
>> kind of text file and you really _do_ have a
>> line break after "Stara
>>
>> Or have a line break in the string you paste into the URL
>> or something similar.
>>
>> Kind of shooting in the dark though.
>>
>> Erick
>>
>> On Wed, Mar 19, 2014 at 8:48 AM, Marcin Rzewucki <mrzewucki@gmail.com>
>> wrote:
>> > Hi,
>> >
>> > I have the following issue with join query parser and filter query. For
>> > such query:
>> >
>> > <str name="q">*:*</str>
>> > <str name="fq">
>> > (({!join from=inner_id to=outer_id fromIndex=othercore}city:"Stara
>> > Zagora")) AND (prod:214)
>> > </str>
>> >
>> > I got error:
>> > <lst name="error">
>> > <str name="msg">
>> > org.apache.solr.search.SyntaxError: Cannot parse 'city:"Stara': Lexical
>> > error at line 1, column 12. Encountered: <EOF> after : "\"Stara"
>> > </str>
>> > <int name="code">400</int>
>> > </lst>
>> >
>> > Stack:
>> > DEBUG - 2014-03-19 13:35:20.825;
>> org.eclipse.jetty.servlet.ServletHandler;
>> > chain=SolrRequestFilter->default
>> > DEBUG - 2014-03-19 13:35:20.826;
>> > org.eclipse.jetty.servlet.ServletHandler$CachedChain; call filter
>> > SolrRequestFilter
>> > ERROR - 2014-03-19 13:35:20.828; org.apache.solr.common.SolrException;
>> > org.apache.solr.common.SolrException: org.apache.solr.search.SyntaxError:
>> > Cannot parse 'city:"Stara': Lexical error at line 1, column 12.  E
>> > ncountered: <EOF> after : "\"Stara"
>> >         at
>> >
>> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:179)
>> >         at
>> >
>> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:193)
>> >         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)
>> > Caused by: org.apache.solr.search.SyntaxError: Cannot parse
>> 'city:"Stara':
>> > Lexical error at line 1, column 12.  Encountered: <EOF> after : "\"Stara"
>> >         at
>> >
>> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:159)
>> >         at
>> org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)
>> >         at org.apache.solr.search.QParser.getQuery(QParser.java:141)
>> >         at
>> >
>> org.apache.solr.search.JoinQParserPlugin$1.parse(JoinQParserPlugin.java:93)
>> >         at org.apache.solr.search.QParser.getQuery(QParser.java:141)
>> >         at
>> >
>> org.apache.solr.parser.SolrQueryParserBase.getLocalParams(SolrQueryParserBase.java:832)
>> >         at
>> org.apache.solr.parser.QueryParser.Clause(QueryParser.java:212)
>> >         at org.apache.solr.parser.QueryParser.Query(QueryParser.java:107)
>> >         at
>> org.apache.solr.parser.QueryParser.Clause(QueryParser.java:189)
>> >         at org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
>> >         at
>> org.apache.solr.parser.QueryParser.Clause(QueryParser.java:189)
>> >         at org.apache.solr.parser.QueryParser.Query(QueryParser.java:107)
>> >         at
>> > org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
>> >         at
>> >
>> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:152)
>> >        at
>> org.apache.solr.search.LuceneQParser.parse(LuceneQParser.java:50)
>> >         at org.apache.solr.search.QParser.getQuery(QParser.java:141)
>> >         at
>> >
>> org.apache.solr.handler.component.QueryComponent.prepare(QueryComponent.java:168)
>> >         ... 31 more
>> > Caused by: org.apache.solr.parser.TokenMgrError: Lexical error at line 1,
>> > column 12.  Encountered: <EOF> after : "\"Stara"
>> >         at
>> >
>> org.apache.solr.parser.QueryParserTokenManager.getNextToken(QueryParserTokenManager.java:1197)
>> >         at
>> org.apache.solr.parser.QueryParser.jj_ntk(QueryParser.java:579)
>> >         at
>> org.apache.solr.parser.QueryParser.Clause(QueryParser.java:174)
>> >         at org.apache.solr.parser.QueryParser.Query(QueryParser.java:107)
>> >         at
>> > org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
>> >         at
>> >
>> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:152)
>> >         ... 47 more
>> >
>> > But the below query works fine:
>> > <str name="q">*:*</str>
>> > <arr name="fq">
>> > <str>
>> > {!join from=inner_id to=outer_id fromIndex=othercore}city:"Stara Zagora"
>> > </str>
>> > <str>prod:214</str>
>> > </arr>
>> >
>> > What is wrong ? Is it AND operator ?
>> > The only workaround I found is to skip double quotes and use question
>> mark
>> > instead of space:
>> > <str name="q">*:*</str>
>> > <str name="fq">
>> > (({!join from=inner_id to=outer_id
>> fromIndex=othercore}city:Stara?Zagora))
>> > AND (prod:214)
>> > </str>
>> >
>> > Then it works, but it's not the best solution. Any other ideas ?
>> > I kindly appreciate your help. Thanks.
>> >
>> > Regards.
>>

Mime
View raw message