glad the suggestions are working for you! Thanks, Kranti K. Parisa http://www.linkedin.com/in/krantiparisa
On Mon, Mar 24, 2014 at 4:10 AM, Marcin Rzewucki <mrzewu...@gmail.com>wrote: > Hi, > > Yonik, thank you for explaining me the reason of the issue. The workarounds > you suggested are working fine. > Kranti, your suggestion was also good :-) > > Thanks a lot! > > > > On 21 March 2014 20:00, Kranti Parisa <kranti.par...@gmail.com> wrote: > > > My example should also work, am I missing something? > > > > &q=({!join from=inner_id to=outer_id fromIndex=othercore > > v=$joinQuery})&joinQuery=(city:"Stara Zagora" AND prod:214) > > > > Thanks, > > Kranti K. Parisa > > http://www.linkedin.com/in/krantiparisa > > > > > > > > On Fri, Mar 21, 2014 at 2:11 PM, Yonik Seeley <yo...@heliosearch.com> > > wrote: > > > > > Correct. This is only a limitation of embedding a local-params style > > > subquery within lucene syntax. > > > The parser, not knowing the syntax of the embedded query, currently > > > assumes the query text ends at whitespace or other special punctuation > > > such as ")". > > > > > > Original: > > > (({!join from=inner_id to=outer_id fromIndex=othercore}city:"Stara > > > Zagora")) AND (prod:214) > > > > > > Some possible workarounds that should work: > > > &q={!join from=inner_id to=outer_id fromIndex=othercore}city:"Stara > > Zagora" > > > &fq=prod:214 > > > > > > &q=({!join from=inner_id to=outer_id fromIndex=othercore > > > v='city:"Stara Zagora"'} AND prod:214) > > > > > > &q=({!join from=inner_id to=outer_id fromIndex=othercore v=$jq} AND > > > prod:214) > > > &jq=city:"Stara Zagora" > > > > > > > > > -Yonik > > > http://heliosearch.org - solve Solr GC pauses with off-heap filters > > > and fieldcache > > > > > > > > > On Fri, Mar 21, 2014 at 1:54 PM, Jack Krupansky < > j...@basetechnology.com > > > > > > wrote: > > > > I suspect that this is a bug in the implementation of the parsing of > > > > embedded nested query parsers . That's a fairly new feature compared > to > > > > non-embedded nested query parsers - maybe Yonik could shed some > light. > > > This > > > > may date from when he made a copy of the Lucene query parser for Solr > > and > > > > added the parsing of embedded nested query parsers to the grammar. It > > > seems > > > > like the embedded nested query parser is only being applied to a > > single, > > > > white space-delimited term, and not respecting the fact that the term > > is > > > a > > > > quoted phrase. > > > > > > > > -- Jack Krupansky > > > > > > > > -----Original Message----- From: Marcin Rzewucki > > > > Sent: Thursday, March 20, 2014 5:19 AM > > > > To: solr-user@lucene.apache.org > > > > Subject: Re: join and filter query with AND > > > > > > > > > > > > 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 <erickerick...@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 < > mrzewu...@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. > > > >> > > > > > > > > > >