On 5/9/2018 12:56 PM, root23 wrote:
> Thanks for the explanation shawn. I will look at our autowarming time. 
> Looking at your response i am thinking i might be doing few more things
> wrong
> 1. Does Must clause with any of the filter query makes any sense or is
> automatically implied.
>   e.g if i want all the docs with firstName:michael and lastname:jordan,
> which of the following queries makes sense or both are equivalent
>     a) q=*:*&fq=name:michael&fq=lastname:jordan
>     b) q=*:*&fq=+name:michael&fq=+lastname:jordan

Because both of those filters you're using are single-clause, query a
and query b should produce identical results.  In that situation, the +
is not necessary.

If you had this instead, which is a two-clause query, you probably want
to use + markers:

q=*:*&fq=name:michael lastname:jordan

Depending on what the default operator (q.op) is, of course.  If you use
q.op=AND, then adding the + markers would be handled automatically for
all clauses that do not explicitly use OR.

> 2.Does Must clause also implied with the join query. so in the following
> query i am joining between 2 cores, on field:id. It should filter first from
> the index "search" where title is full and then join on id and then only get
> the docs which also has status set to monitor.
>
>      a ) q=*:*&fq=+{!join from=id to=id fromIndex=search
> force=true}title:full&fq=+status:monitor
>     
>      b) q=*:*&fq={!join from=id to=id fromIndex=search
> force=true}title:full&fq=status:monitor
>
> so of the above which one is accurate a) or b)

I have absolutely zero experience with joins in Solr.  That said, query
a has something (a plus sign) before the "{!join" ... which might cause
Solr to *not* interpret the query as a join.  The localparams syntax
normally must be the very first thing in a query string.  The actual
query "title:full" is a single clause query, so it should not need the +. 

Thanks,
Shawn

Reply via email to