You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Iana Bondarska <ya...@gmail.com> on 2015/10/08 10:46:57 UTC

Error when use block-join filters in json api

Hello,
I'm trying to use block join feature with json api. I got following error
when add query with  "which parent" or "child of " prefixes to query facet.
My query is :

{!parent which="state:Idaho"} AND category:Books

If I remove block-join prefixes -- query runs without errors. Are such
filters supported by json api now?

Best Regards,
Iana

Re: Error when use block-join filters in json api

Posted by Mikhail Khludnev <mk...@griddynamics.com>.
Iana,
Such complex structured queries are really hard to forge in Solr (-here
Elastic's DSL gets over much-).
I suggest to check
http://blog.griddynamics.com/2013/09/solr-block-join-support.html and
http://blog.griddynamics.com/2013/12/grandchildren-and-siblings-with-block.html
to get known corner cases.

so, far
"+{!child of=state:*}state:Michigan+{!child
of=city:*}city:'Benton'",
Different 'of' filter seems doubtful to me, beware! you might exceed BJQ
capability. Absence of space before second plus is also suspicious do me. I
suggest to look into the parsed query in debugQuery=true output.

Oh, I just understand that you work with query facet!!
 type : query,

Thus, make sure that the query works as a q parameter, it should yield a
lot of surprises.

On Thu, Oct 8, 2015 at 6:41 PM, Iana Bondarska <ya...@gmail.com> wrote:

>  thanks for help, I managed to get some results with json.facet:
> { high_popularity : {
>     type : query,
>     q : "+{!child of=state:*}state:Michigan+{!child
> of=city:*}city:'Benton'",
>     facet :{top_genres:{type: terms,field: c_gender}}
> }
> }
>
> but in this case operator to link conditions is defined by solrQueryParser,
> defaultOperator param in schema.xml.
> Are there any way to define which operator I want to use in the query?
>
> Also seems that  it's impossible to specify numeric conditions, such query
> leads to error (I have c_age in child documents too)
> { high_popularity : {
>     type : query,
>     q : "+{!child of=state:*}state:Michigan+{!child
> of=city:*}city:'Benton'+c_age:[10:40]",
>     facet :{top_genres:{type: terms,field: c_gender}}
> }
> }
>
>
>
> Regarding error with default text field -- it was definitely result of that
> query, I also got 400, undefined field Review_Text in response(it was
> defined as default query field in solrconfig.xml ) . After add field, I
> results, but again, they are linked by OR condition
>
>
> 2015-10-08 16:53 GMT+03:00 Mikhail Khludnev <mk...@griddynamics.com>:
>
> > >
> > >  { high_popularity : {
> > >     type : query,
> > >     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
> > >     facet :{top_genres:{type: terms,field: c_gender}}
> > > }
> > > }
> >
> >
> > I'm not sure about facets, but query isn't correct in should be something
> > like
> >   q : "+c_window:seaview +{!child of="_id:[* TO *]"}city:Auburn",
> > of filter should match all parents docs! it's convenient to index
> > parent:true field.
> >
> >     q : "{!child of=city:Auburn}city:Auburn AND {child
> > of=state:Washingthon}state:Washingthon",
> >
> > it should be rewritten as (I'm ashamed to say why)
> >
> >     q : "+{!child of="_id:[* TO *]"}city:Auburn +{child
> > of="_id:[* TO *]"}state:Washingthon",
> >
> > I don't believe that stack trace is caused by the shown request, because
> it
> > hiccups on query facet, which you didn't show:
> >
> >         at
> >
> org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
> >         at
> >
> >
> org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
> >         at
> >
> >
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
> >
> > see
> >   public Object parseFacetOrStat(String key, String type, Object args)
> > throws SyntaxError {
> >     // TODO: a place to register all these facet types?
> >
> >     if ("field".equals(type) || "terms".equals(type)) {
> >       return parseFieldFacet(key, args);
> >     } else if ("query".equals(type)) {
> >       return parseQueryFacet(key, args);
> >     } else if ("range".equals(type)) {
> >       return parseRangeFacet(key, args);
> >     }
> >
> >
> >
> >
> > On Thu, Oct 8, 2015 at 4:08 PM, Iana Bondarska <ya...@gmail.com>
> wrote:
> >
> > > sorry,missed example input data:
> > > child document:
> > > { "c_gender": "female", "c_window": "seaview", "_root_": 1673891436 }
> > >
> > > parent document:
> > > { "_id": 1673891436, "county_code": "26021", "city": "Auburn", "year":
> > > 2012,
> > > "county": "Berrien", "Sales": 112808, "state": "Washington",
> > > "product_group":
> > > "Books", "sku": "ZD111588", "income_bracket": "$25000 to $50000",
> > > "_version_":
> > > 1513636454494896000, "_root_": 1673891436 },
> > >
> > > 2015-10-08 15:00 GMT+03:00 Iana Bondarska <ya...@gmail.com>:
> > >
> > > > Hello Mikhail,
> > > >
> > > > here are json.facet parameters that I tried:
> > > > c_gender, c_window belong to child documents, rest - to parent.
> > > >
> > > > 1. returns no results, can we combine filters from different levels
> in
> > > > queries
> > > >
> > > >  { high_popularity : {
> > > >     type : query,
> > > >     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
> > > >     facet :{top_genres:{type: terms,field: c_gender}}
> > > > }
> > > > }
> > > >
> > > > 2.triggers full text search, I get error "undefined field:
> > > > \"Review_Text\"" , that's true, I have mistake in configuration,but I
> > > > didn't request fulltext search in the query
> > > >
> > > >  { high_popularity : {
> > > >     type : query,
> > > >     q : "{!child of=city:Auburn}city:Auburn AND {child
> > > > of=state:Washingthon}state:Washingthon",
> > > >     facet :{top_genres:{type: terms,field: c_gender}}
> > > > }
> > > > }
> > > > logs for 2nd case:
> > > >
> > > > org.apache.solr.common.SolrException: undefined field: "Review_Text"
> > > >       at
> > > org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1229)
> > > >       at
> > >
> >
> org.apache.solr.parser.SolrQueryParserBase.getRangeQuery(SolrQueryParserBase.java:769)
> > > >       at
> org.apache.solr.parser.QueryParser.Term(QueryParser.java:382)
> > > >       at
> > org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)
> > > >       at
> org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
> > > >       at
> > > org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
> > > >       at
> > >
> >
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)
> > > >       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.join.BlockJoinParentQParser.parse(BlockJoinParentQParser.java:70)
> > > >       at
> > >
> >
> org.apache.solr.search.join.BlockJoinChildQParser.parse(BlockJoinChildQParser.java:25)
> > > >       at org.apache.solr.search.QParser.getQuery(QParser.java:141)
> > > >       at
> > >
> >
> org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
> > > >       at
> > >
> >
> org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
> > > >       at
> > >
> >
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
> > > >       at
> > >
> >
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:229)
> > > >       at
> > >
> org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179)
> > > >       at
> > >
> org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427)
> > > >       at
> > >
> org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416)
> > > >       at
> > > org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125)
> > > >       at
> > >
> >
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)
> > > >       at
> > >
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> > > >       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> > > >       at
> > > org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> > > >       at
> > org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> > > >       at
> > >
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> > > >       at
> > >
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> > > >       at
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> > > >       at
> > >
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> > > >       at
> > >
> >
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> > > >       at
> > >
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> > > >       at org.eclipse.jetty.server.Server.handle(Server.java:499)
> > > >       at
> > > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> > > >       at
> > >
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> > > >       at
> > >
> >
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> > > >       at
> > >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> > > >       at
> > >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> > > >       at java.lang.Thread.run(Thread.java:745)
> > > >
> > > >
> > > > 2015-10-08 12:42 GMT+03:00 Mikhail Khludnev <
> > mkhludnev@griddynamics.com
> > > >:
> > > >
> > > >> Hello, Yana!
> > > >>
> > > >> It's not clear what happens. I appreciate if you put exact queries
> (up
> > > to
> > > >> obfuscated values) and exceptions or actual results (and
> > expectations);
> > > >> sample data is also useful.
> > > >> What I can note so far, user filters can't be used as parent mask in
> > > >> _which_ and _of_. See
> > > >>
> > > >>
> > >
> >
> https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
> > > >> q={!parent which=<allParents>}<someChildren>. Again the parameter
> The
> > > >> parameter allParents is a filter that matches only parent documents;
> > > >>
> > > >>
> > > >>
> > > >> On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <yana2301@gmail.com
> >
> > > >> wrote:
> > > >>
> > > >> > Hello,
> > > >> > I'm trying to use block join feature with json api. I got
> following
> > > >> error
> > > >> > when add query with  "which parent" or "child of " prefixes to
> query
> > > >> facet.
> > > >> > My query is :
> > > >> >
> > > >> > {!parent which="state:Idaho"} AND category:Books
> > > >> >
> > > >> > If I remove block-join prefixes -- query runs without errors. Are
> > such
> > > >> > filters supported by json api now?
> > > >> >
> > > >> > Best Regards,
> > > >> > Iana
> > > >> >
> > > >>
> > > >>
> > > >>
> > > >> --
> > > >> Sincerely yours
> > > >> Mikhail Khludnev
> > > >> Principal Engineer,
> > > >> Grid Dynamics
> > > >>
> > > >> <http://www.griddynamics.com>
> > > >> <mk...@griddynamics.com>
> > > >>
> > > >
> > > >
> > >
> >
> >
> >
> > --
> > Sincerely yours
> > Mikhail Khludnev
> > Principal Engineer,
> > Grid Dynamics
> >
> > <http://www.griddynamics.com>
> > <mk...@griddynamics.com>
> >
>



-- 
Sincerely yours
Mikhail Khludnev
Principal Engineer,
Grid Dynamics

<http://www.griddynamics.com>
<mk...@griddynamics.com>

Re: Error when use block-join filters in json api

Posted by Iana Bondarska <ya...@gmail.com>.
 thanks for help, I managed to get some results with json.facet:
{ high_popularity : {
    type : query,
    q : "+{!child of=state:*}state:Michigan+{!child
of=city:*}city:'Benton'",
    facet :{top_genres:{type: terms,field: c_gender}}
}
}

but in this case operator to link conditions is defined by solrQueryParser,
defaultOperator param in schema.xml.
Are there any way to define which operator I want to use in the query?

Also seems that  it's impossible to specify numeric conditions, such query
leads to error (I have c_age in child documents too)
{ high_popularity : {
    type : query,
    q : "+{!child of=state:*}state:Michigan+{!child
of=city:*}city:'Benton'+c_age:[10:40]",
    facet :{top_genres:{type: terms,field: c_gender}}
}
}



Regarding error with default text field -- it was definitely result of that
query, I also got 400, undefined field Review_Text in response(it was
defined as default query field in solrconfig.xml ) . After add field, I
results, but again, they are linked by OR condition


2015-10-08 16:53 GMT+03:00 Mikhail Khludnev <mk...@griddynamics.com>:

> >
> >  { high_popularity : {
> >     type : query,
> >     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
> >     facet :{top_genres:{type: terms,field: c_gender}}
> > }
> > }
>
>
> I'm not sure about facets, but query isn't correct in should be something
> like
>   q : "+c_window:seaview +{!child of="_id:[* TO *]"}city:Auburn",
> of filter should match all parents docs! it's convenient to index
> parent:true field.
>
>     q : "{!child of=city:Auburn}city:Auburn AND {child
> of=state:Washingthon}state:Washingthon",
>
> it should be rewritten as (I'm ashamed to say why)
>
>     q : "+{!child of="_id:[* TO *]"}city:Auburn +{child
> of="_id:[* TO *]"}state:Washingthon",
>
> I don't believe that stack trace is caused by the shown request, because it
> hiccups on query facet, which you didn't show:
>
>         at
> org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
>         at
>
> org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
>         at
>
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
>
> see
>   public Object parseFacetOrStat(String key, String type, Object args)
> throws SyntaxError {
>     // TODO: a place to register all these facet types?
>
>     if ("field".equals(type) || "terms".equals(type)) {
>       return parseFieldFacet(key, args);
>     } else if ("query".equals(type)) {
>       return parseQueryFacet(key, args);
>     } else if ("range".equals(type)) {
>       return parseRangeFacet(key, args);
>     }
>
>
>
>
> On Thu, Oct 8, 2015 at 4:08 PM, Iana Bondarska <ya...@gmail.com> wrote:
>
> > sorry,missed example input data:
> > child document:
> > { "c_gender": "female", "c_window": "seaview", "_root_": 1673891436 }
> >
> > parent document:
> > { "_id": 1673891436, "county_code": "26021", "city": "Auburn", "year":
> > 2012,
> > "county": "Berrien", "Sales": 112808, "state": "Washington",
> > "product_group":
> > "Books", "sku": "ZD111588", "income_bracket": "$25000 to $50000",
> > "_version_":
> > 1513636454494896000, "_root_": 1673891436 },
> >
> > 2015-10-08 15:00 GMT+03:00 Iana Bondarska <ya...@gmail.com>:
> >
> > > Hello Mikhail,
> > >
> > > here are json.facet parameters that I tried:
> > > c_gender, c_window belong to child documents, rest - to parent.
> > >
> > > 1. returns no results, can we combine filters from different levels in
> > > queries
> > >
> > >  { high_popularity : {
> > >     type : query,
> > >     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
> > >     facet :{top_genres:{type: terms,field: c_gender}}
> > > }
> > > }
> > >
> > > 2.triggers full text search, I get error "undefined field:
> > > \"Review_Text\"" , that's true, I have mistake in configuration,but I
> > > didn't request fulltext search in the query
> > >
> > >  { high_popularity : {
> > >     type : query,
> > >     q : "{!child of=city:Auburn}city:Auburn AND {child
> > > of=state:Washingthon}state:Washingthon",
> > >     facet :{top_genres:{type: terms,field: c_gender}}
> > > }
> > > }
> > > logs for 2nd case:
> > >
> > > org.apache.solr.common.SolrException: undefined field: "Review_Text"
> > >       at
> > org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1229)
> > >       at
> >
> org.apache.solr.parser.SolrQueryParserBase.getRangeQuery(SolrQueryParserBase.java:769)
> > >       at org.apache.solr.parser.QueryParser.Term(QueryParser.java:382)
> > >       at
> org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)
> > >       at org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
> > >       at
> > org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
> > >       at
> >
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)
> > >       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.join.BlockJoinParentQParser.parse(BlockJoinParentQParser.java:70)
> > >       at
> >
> org.apache.solr.search.join.BlockJoinChildQParser.parse(BlockJoinChildQParser.java:25)
> > >       at org.apache.solr.search.QParser.getQuery(QParser.java:141)
> > >       at
> >
> org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
> > >       at
> >
> org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
> > >       at
> >
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
> > >       at
> >
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:229)
> > >       at
> > org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179)
> > >       at
> > org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427)
> > >       at
> > org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416)
> > >       at
> > org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125)
> > >       at
> >
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)
> > >       at
> >
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> > >       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> > >       at
> > org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> > >       at
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> > >       at
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> > >       at
> >
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> > >       at
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> > >       at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> > >       at
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> > >       at
> >
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> > >       at
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> > >       at
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> > >       at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> > >       at
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> > >       at
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> > >       at
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> > >       at
> >
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> > >       at
> >
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> > >       at
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> > >       at org.eclipse.jetty.server.Server.handle(Server.java:499)
> > >       at
> > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> > >       at
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> > >       at
> >
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> > >       at
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> > >       at
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> > >       at java.lang.Thread.run(Thread.java:745)
> > >
> > >
> > > 2015-10-08 12:42 GMT+03:00 Mikhail Khludnev <
> mkhludnev@griddynamics.com
> > >:
> > >
> > >> Hello, Yana!
> > >>
> > >> It's not clear what happens. I appreciate if you put exact queries (up
> > to
> > >> obfuscated values) and exceptions or actual results (and
> expectations);
> > >> sample data is also useful.
> > >> What I can note so far, user filters can't be used as parent mask in
> > >> _which_ and _of_. See
> > >>
> > >>
> >
> https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
> > >> q={!parent which=<allParents>}<someChildren>. Again the parameter The
> > >> parameter allParents is a filter that matches only parent documents;
> > >>
> > >>
> > >>
> > >> On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <ya...@gmail.com>
> > >> wrote:
> > >>
> > >> > Hello,
> > >> > I'm trying to use block join feature with json api. I got following
> > >> error
> > >> > when add query with  "which parent" or "child of " prefixes to query
> > >> facet.
> > >> > My query is :
> > >> >
> > >> > {!parent which="state:Idaho"} AND category:Books
> > >> >
> > >> > If I remove block-join prefixes -- query runs without errors. Are
> such
> > >> > filters supported by json api now?
> > >> >
> > >> > Best Regards,
> > >> > Iana
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> Sincerely yours
> > >> Mikhail Khludnev
> > >> Principal Engineer,
> > >> Grid Dynamics
> > >>
> > >> <http://www.griddynamics.com>
> > >> <mk...@griddynamics.com>
> > >>
> > >
> > >
> >
>
>
>
> --
> Sincerely yours
> Mikhail Khludnev
> Principal Engineer,
> Grid Dynamics
>
> <http://www.griddynamics.com>
> <mk...@griddynamics.com>
>

Re: Error when use block-join filters in json api

Posted by Mikhail Khludnev <mk...@griddynamics.com>.
>
>  { high_popularity : {
>     type : query,
>     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
>     facet :{top_genres:{type: terms,field: c_gender}}
> }
> }


I'm not sure about facets, but query isn't correct in should be something
like
  q : "+c_window:seaview +{!child of="_id:[* TO *]"}city:Auburn",
of filter should match all parents docs! it's convenient to index
parent:true field.

    q : "{!child of=city:Auburn}city:Auburn AND {child
of=state:Washingthon}state:Washingthon",

it should be rewritten as (I'm ashamed to say why)

    q : "+{!child of="_id:[* TO *]"}city:Auburn +{child
of="_id:[* TO *]"}state:Washingthon",

I don't believe that stack trace is caused by the shown request, because it
hiccups on query facet, which you didn't show:

        at
org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
        at
org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
        at
org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)

see
  public Object parseFacetOrStat(String key, String type, Object args)
throws SyntaxError {
    // TODO: a place to register all these facet types?

    if ("field".equals(type) || "terms".equals(type)) {
      return parseFieldFacet(key, args);
    } else if ("query".equals(type)) {
      return parseQueryFacet(key, args);
    } else if ("range".equals(type)) {
      return parseRangeFacet(key, args);
    }




On Thu, Oct 8, 2015 at 4:08 PM, Iana Bondarska <ya...@gmail.com> wrote:

> sorry,missed example input data:
> child document:
> { "c_gender": "female", "c_window": "seaview", "_root_": 1673891436 }
>
> parent document:
> { "_id": 1673891436, "county_code": "26021", "city": "Auburn", "year":
> 2012,
> "county": "Berrien", "Sales": 112808, "state": "Washington",
> "product_group":
> "Books", "sku": "ZD111588", "income_bracket": "$25000 to $50000",
> "_version_":
> 1513636454494896000, "_root_": 1673891436 },
>
> 2015-10-08 15:00 GMT+03:00 Iana Bondarska <ya...@gmail.com>:
>
> > Hello Mikhail,
> >
> > here are json.facet parameters that I tried:
> > c_gender, c_window belong to child documents, rest - to parent.
> >
> > 1. returns no results, can we combine filters from different levels in
> > queries
> >
> >  { high_popularity : {
> >     type : query,
> >     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
> >     facet :{top_genres:{type: terms,field: c_gender}}
> > }
> > }
> >
> > 2.triggers full text search, I get error "undefined field:
> > \"Review_Text\"" , that's true, I have mistake in configuration,but I
> > didn't request fulltext search in the query
> >
> >  { high_popularity : {
> >     type : query,
> >     q : "{!child of=city:Auburn}city:Auburn AND {child
> > of=state:Washingthon}state:Washingthon",
> >     facet :{top_genres:{type: terms,field: c_gender}}
> > }
> > }
> > logs for 2nd case:
> >
> > org.apache.solr.common.SolrException: undefined field: "Review_Text"
> >       at
> org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1229)
> >       at
> org.apache.solr.parser.SolrQueryParserBase.getRangeQuery(SolrQueryParserBase.java:769)
> >       at org.apache.solr.parser.QueryParser.Term(QueryParser.java:382)
> >       at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)
> >       at org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
> >       at
> org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
> >       at
> org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)
> >       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.join.BlockJoinParentQParser.parse(BlockJoinParentQParser.java:70)
> >       at
> org.apache.solr.search.join.BlockJoinChildQParser.parse(BlockJoinChildQParser.java:25)
> >       at org.apache.solr.search.QParser.getQuery(QParser.java:141)
> >       at
> org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
> >       at
> org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
> >       at
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
> >       at
> org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:229)
> >       at
> org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179)
> >       at
> org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427)
> >       at
> org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416)
> >       at
> org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125)
> >       at
> org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)
> >       at
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> >       at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> >       at
> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> >       at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> >       at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> >       at
> org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> >       at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> >       at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> >       at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> >       at
> org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> >       at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> >       at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> >       at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> >       at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> >       at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> >       at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> >       at
> org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> >       at
> org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> >       at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> >       at org.eclipse.jetty.server.Server.handle(Server.java:499)
> >       at
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> >       at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> >       at
> org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> >       at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> >       at
> org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> >       at java.lang.Thread.run(Thread.java:745)
> >
> >
> > 2015-10-08 12:42 GMT+03:00 Mikhail Khludnev <mkhludnev@griddynamics.com
> >:
> >
> >> Hello, Yana!
> >>
> >> It's not clear what happens. I appreciate if you put exact queries (up
> to
> >> obfuscated values) and exceptions or actual results (and expectations);
> >> sample data is also useful.
> >> What I can note so far, user filters can't be used as parent mask in
> >> _which_ and _of_. See
> >>
> >>
> https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
> >> q={!parent which=<allParents>}<someChildren>. Again the parameter The
> >> parameter allParents is a filter that matches only parent documents;
> >>
> >>
> >>
> >> On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <ya...@gmail.com>
> >> wrote:
> >>
> >> > Hello,
> >> > I'm trying to use block join feature with json api. I got following
> >> error
> >> > when add query with  "which parent" or "child of " prefixes to query
> >> facet.
> >> > My query is :
> >> >
> >> > {!parent which="state:Idaho"} AND category:Books
> >> >
> >> > If I remove block-join prefixes -- query runs without errors. Are such
> >> > filters supported by json api now?
> >> >
> >> > Best Regards,
> >> > Iana
> >> >
> >>
> >>
> >>
> >> --
> >> Sincerely yours
> >> Mikhail Khludnev
> >> Principal Engineer,
> >> Grid Dynamics
> >>
> >> <http://www.griddynamics.com>
> >> <mk...@griddynamics.com>
> >>
> >
> >
>



-- 
Sincerely yours
Mikhail Khludnev
Principal Engineer,
Grid Dynamics

<http://www.griddynamics.com>
<mk...@griddynamics.com>

Re: Error when use block-join filters in json api

Posted by Iana Bondarska <ya...@gmail.com>.
sorry,missed example input data:
child document:
{ "c_gender": "female", "c_window": "seaview", "_root_": 1673891436 }

parent document:
{ "_id": 1673891436, "county_code": "26021", "city": "Auburn", "year": 2012,
"county": "Berrien", "Sales": 112808, "state": "Washington", "product_group":
"Books", "sku": "ZD111588", "income_bracket": "$25000 to $50000", "_version_":
1513636454494896000, "_root_": 1673891436 },

2015-10-08 15:00 GMT+03:00 Iana Bondarska <ya...@gmail.com>:

> Hello Mikhail,
>
> here are json.facet parameters that I tried:
> c_gender, c_window belong to child documents, rest - to parent.
>
> 1. returns no results, can we combine filters from different levels in
> queries
>
>  { high_popularity : {
>     type : query,
>     q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
>     facet :{top_genres:{type: terms,field: c_gender}}
> }
> }
>
> 2.triggers full text search, I get error "undefined field:
> \"Review_Text\"" , that's true, I have mistake in configuration,but I
> didn't request fulltext search in the query
>
>  { high_popularity : {
>     type : query,
>     q : "{!child of=city:Auburn}city:Auburn AND {child
> of=state:Washingthon}state:Washingthon",
>     facet :{top_genres:{type: terms,field: c_gender}}
> }
> }
> logs for 2nd case:
>
> org.apache.solr.common.SolrException: undefined field: "Review_Text"
> 	at org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1229)
> 	at org.apache.solr.parser.SolrQueryParserBase.getRangeQuery(SolrQueryParserBase.java:769)
> 	at org.apache.solr.parser.QueryParser.Term(QueryParser.java:382)
> 	at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)
> 	at org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
> 	at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
> 	at org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)
> 	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.join.BlockJoinParentQParser.parse(BlockJoinParentQParser.java:70)
> 	at org.apache.solr.search.join.BlockJoinChildQParser.parse(BlockJoinChildQParser.java:25)
> 	at org.apache.solr.search.QParser.getQuery(QParser.java:141)
> 	at org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
> 	at org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
> 	at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
> 	at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:229)
> 	at org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179)
> 	at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427)
> 	at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416)
> 	at org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125)
> 	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)
> 	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
> 	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
> 	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
> 	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
> 	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
> 	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
> 	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
> 	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
> 	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
> 	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
> 	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
> 	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
> 	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
> 	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
> 	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
> 	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
> 	at org.eclipse.jetty.server.Server.handle(Server.java:499)
> 	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
> 	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
> 	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
> 	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
> 	at java.lang.Thread.run(Thread.java:745)
>
>
> 2015-10-08 12:42 GMT+03:00 Mikhail Khludnev <mk...@griddynamics.com>:
>
>> Hello, Yana!
>>
>> It's not clear what happens. I appreciate if you put exact queries (up to
>> obfuscated values) and exceptions or actual results (and expectations);
>> sample data is also useful.
>> What I can note so far, user filters can't be used as parent mask in
>> _which_ and _of_. See
>>
>> https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
>> q={!parent which=<allParents>}<someChildren>. Again the parameter The
>> parameter allParents is a filter that matches only parent documents;
>>
>>
>>
>> On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <ya...@gmail.com>
>> wrote:
>>
>> > Hello,
>> > I'm trying to use block join feature with json api. I got following
>> error
>> > when add query with  "which parent" or "child of " prefixes to query
>> facet.
>> > My query is :
>> >
>> > {!parent which="state:Idaho"} AND category:Books
>> >
>> > If I remove block-join prefixes -- query runs without errors. Are such
>> > filters supported by json api now?
>> >
>> > Best Regards,
>> > Iana
>> >
>>
>>
>>
>> --
>> Sincerely yours
>> Mikhail Khludnev
>> Principal Engineer,
>> Grid Dynamics
>>
>> <http://www.griddynamics.com>
>> <mk...@griddynamics.com>
>>
>
>

Re: Error when use block-join filters in json api

Posted by Iana Bondarska <ya...@gmail.com>.
Hello Mikhail,

here are json.facet parameters that I tried:
c_gender, c_window belong to child documents, rest - to parent.

1. returns no results, can we combine filters from different levels in
queries

 { high_popularity : {
    type : query,
    q : "{!child of=city:Auburn}city:Auburn AND c_window:seaview",
    facet :{top_genres:{type: terms,field: c_gender}}
}
}

2.triggers full text search, I get error "undefined field: \"Review_Text\"" ,
that's true, I have mistake in configuration,but I didn't request fulltext
search in the query

 { high_popularity : {
    type : query,
    q : "{!child of=city:Auburn}city:Auburn AND {child
of=state:Washingthon}state:Washingthon",
    facet :{top_genres:{type: terms,field: c_gender}}
}
}
logs for 2nd case:

org.apache.solr.common.SolrException: undefined field: "Review_Text"
	at org.apache.solr.schema.IndexSchema.getField(IndexSchema.java:1229)
	at org.apache.solr.parser.SolrQueryParserBase.getRangeQuery(SolrQueryParserBase.java:769)
	at org.apache.solr.parser.QueryParser.Term(QueryParser.java:382)
	at org.apache.solr.parser.QueryParser.Clause(QueryParser.java:185)
	at org.apache.solr.parser.QueryParser.Query(QueryParser.java:139)
	at org.apache.solr.parser.QueryParser.TopLevelQuery(QueryParser.java:96)
	at org.apache.solr.parser.SolrQueryParserBase.parse(SolrQueryParserBase.java:151)
	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.join.BlockJoinParentQParser.parse(BlockJoinParentQParser.java:70)
	at org.apache.solr.search.join.BlockJoinChildQParser.parse(BlockJoinChildQParser.java:25)
	at org.apache.solr.search.QParser.getQuery(QParser.java:141)
	at org.apache.solr.search.facet.FacetQueryParser.parse(FacetRequest.java:473)
	at org.apache.solr.search.facet.FacetParser.parseQueryFacet(FacetRequest.java:255)
	at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:238)
	at org.apache.solr.search.facet.FacetParser.parseFacetOrStat(FacetRequest.java:229)
	at org.apache.solr.search.facet.FacetParser.parseSubs(FacetRequest.java:179)
	at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:427)
	at org.apache.solr.search.facet.FacetTopParser.parse(FacetRequest.java:416)
	at org.apache.solr.search.facet.FacetModule.prepare(FacetModule.java:125)
	at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:251)
	at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:143)
	at org.apache.solr.core.SolrCore.execute(SolrCore.java:2068)
	at org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:669)
	at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:462)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:210)
	at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:179)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215)
	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
	at org.eclipse.jetty.server.Server.handle(Server.java:499)
	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310)
	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
	at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
	at java.lang.Thread.run(Thread.java:745)


2015-10-08 12:42 GMT+03:00 Mikhail Khludnev <mk...@griddynamics.com>:

> Hello, Yana!
>
> It's not clear what happens. I appreciate if you put exact queries (up to
> obfuscated values) and exceptions or actual results (and expectations);
> sample data is also useful.
> What I can note so far, user filters can't be used as parent mask in
> _which_ and _of_. See
>
> https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
> q={!parent which=<allParents>}<someChildren>. Again the parameter The
> parameter allParents is a filter that matches only parent documents;
>
>
>
> On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <ya...@gmail.com>
> wrote:
>
> > Hello,
> > I'm trying to use block join feature with json api. I got following error
> > when add query with  "which parent" or "child of " prefixes to query
> facet.
> > My query is :
> >
> > {!parent which="state:Idaho"} AND category:Books
> >
> > If I remove block-join prefixes -- query runs without errors. Are such
> > filters supported by json api now?
> >
> > Best Regards,
> > Iana
> >
>
>
>
> --
> Sincerely yours
> Mikhail Khludnev
> Principal Engineer,
> Grid Dynamics
>
> <http://www.griddynamics.com>
> <mk...@griddynamics.com>
>

Re: Error when use block-join filters in json api

Posted by Mikhail Khludnev <mk...@griddynamics.com>.
Hello, Yana!

It's not clear what happens. I appreciate if you put exact queries (up to
obfuscated values) and exceptions or actual results (and expectations);
sample data is also useful.
What I can note so far, user filters can't be used as parent mask in
_which_ and _of_. See
https://cwiki.apache.org/confluence/display/solr/Other+Parsers#OtherParsers-BlockJoinQueryParsers
q={!parent which=<allParents>}<someChildren>. Again the parameter The
parameter allParents is a filter that matches only parent documents;



On Thu, Oct 8, 2015 at 11:46 AM, Iana Bondarska <ya...@gmail.com> wrote:

> Hello,
> I'm trying to use block join feature with json api. I got following error
> when add query with  "which parent" or "child of " prefixes to query facet.
> My query is :
>
> {!parent which="state:Idaho"} AND category:Books
>
> If I remove block-join prefixes -- query runs without errors. Are such
> filters supported by json api now?
>
> Best Regards,
> Iana
>



-- 
Sincerely yours
Mikhail Khludnev
Principal Engineer,
Grid Dynamics

<http://www.griddynamics.com>
<mk...@griddynamics.com>