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