Don't know of any other documentation. There might be some minimal page
on the wiki somewhere, but I can never find it either although I have
some memory of seeing it once, it didn't have anything that the blog
post didn't.
I think 'mm' _should_ work as a LocalParam in a nested query, I use it
myself in code and it seems to work.
But not too surprised that 'fq' doesn't (although I haven't verified
that myself). If indeed it doesn't, here would be a hacky way to get the
same semantics, although it won't use the filter cache for the fq.
If this doesn't work:
&defType=lucene&q= _query_:"{!edismax qf='p,q,r' fq='field1:xyz'}abc
def" AND _query_:"{!edismax mm=100% qf='q, r, s'}jlk"
Then this should, we can just put it in our top-level lucene query as an
additional condition.
&defType=lucene&q= (_query_:"{!edismax qf='p,q,r'}abc def" AND
field1:xyz) AND _query_:"{!edismax mm=100% qf='q, r, s'}jlk"
Yeah, this starts to get painful, agreed, with unclear performance
implications.
On 5/17/2011 10:44 PM, Nikhil Chhaochharia wrote:
Thanks, this looks good. mm and fq don't seem to be working for a nested
query, but I should be able to work around it.
I was unable to find much documentation on the Wiki, API docs or in the Solr
book - please let me know if you are aware of any other documentation for this
feature apart from the mentioned blog post.
Thanks,
Nikhil
----- Original Message -----
From: Jonathan Rochkind<rochk...@jhu.edu>
To: solr-user@lucene.apache.org; Nikhil Chhaochharia<nikhil...@yahoo.com>
Cc:
Sent: Tuesday, 17 May 2011 8:52 PM
Subject: Re: Set operations on multiple queries with different qf parameters
One way to do it might be to use the Solr 'nested query' functionality.
http://www.lucidimagination.com/blog/2009/03/31/nested-queries-in-solr/
Not entirely sure this will work exactly as I've written it, but give
you some ideas of what nested query can do. Note not fully URL-encoded
for clarity:
&defType=lucene&q= _query_:"{!edismax qf='p,q,r' fq='field1:xyz'}abc
def" AND _query_:"{!edismax mm=100% qf='q, r, s'}jlk"
On 5/17/2011 2:55 AM, Nikhil Chhaochharia wrote:
Hi,
I am using Solr 3.1 with edismax. My frontend allows the user to create
arbitrarily complex queries by modifying q, fq, qf and mm (only 1 and 100% are
allowed) parameters. The queries can then be saved by the user.
The user should be able to perform set operations on the saved searches. For
example, the user may want to see all documents which are returned both by
saved search 1 and saved search 2 (equivalent to intersection of the two).
If the saved searches contain q, fq and/or mm, then I can combine the saved
searches to create a new query which will be equivalent to their intersection.
However, I can't figure out how to handle qf?
For example,
Query 1 = q=abc def&fq=field1:xyz&mm=1&qf=p,q,r
Query 2 = q=jkl&mm=100%&qf=q,r,s
How do I get the list of common documents which are present in the result set
of both queries?
Thanks,
Nikhil