I cannot immediately explain the behaviour you are seeing, but can't you
use a filter query to achieve the same?

Add fq=topic:facet to your query string, and you'll be set.

As to the original behaviour, the parsed query looks wrong, as it is
missing a bracket. Can you provide all of the versions of the queries
that Solr gives to you, along with the JSON/XML that wraps them?

Upayavira

On Mon, Nov 30, 2015, at 10:45 AM, Modassar Ather wrote:
> Hi,
> 
> I have a query title:(solr lucene api). The mm is set to 100% using q.op
> as
> AND.
> When the query is executed it returns documnets having all the terms. It
> parses to following:
> +(title:solr title:faceting title:api)~3
> 
> Similarlly I have another query like this topic:facet AND title:(solr
> lucene api) which is parsed as:
> +(+topic:facet +(title:solr title:lucene title:api)
> 
> The second query is a subset of first query but it returns more results
> than the first.
> Per my understanding reason being that there are two clauses in second
> query 1) topic:facet which MUST occur and 2) (title:solr title:lucene
> title:api) any of the terms MUST occur.
> In first query there are 3 clauses which has SHOULD occur in between
> terms
> but due to 100% mm all terms are matched.
> 
> Kindly help me understand how I can get the subset of result of query 1
> by
> query 2.
> I understand if I put +/AND in between the clauses it will work but the
> same is not required in query one.
> Is there a way I can group the clauses which ensures that the first
> clause
> and the terms of other clause all should match as in the query first all
> the clauses are matched.
> Also let me know how ~ is different from phrase slop in the case of first
> query.
> 
> Thanks,
> Modassar

Reply via email to