By SUBTRACT you mean:
Add those docs that apply to fq1 or fq2 but not to fq1 AND fq2 (those, that
apply to one of these fqs but not to both)?




Lance Norskog-2 wrote:
> 
> AND/OR/NOT/SUBTRACT combinations for filters would certainly be a
> useful feature.
> 
> On Wed, Jan 5, 2011 at 11:36 PM, Em <mailformailingli...@yahoo.de> wrote:
>>
>> Thank you Jonathan.
>>
>> "fq=foo:bar&fq=foo:baz" seems to be the better alternative for
>> "fq=foo:bar
>> AND foo:baz" if "foo:bar" and "foo:baz" were often used in different
>> combinations (not always together).
>>
>> However, in most of the usecases I can think of, an "fq=foo:bar OR
>> foo:baz"-behaviour is expected and it would be nice if this fq would
>> benefit
>> from a cached "fq=foo:bar".
>>
>> I can imagine why this is not the case, if only one of two fq-clauses
>> were
>> cached.
>> However, when "foo:bar" and "foo:baz" were cached seperately, why not
>> benefiting from them when a "fq=foo:bar OR foo:baz" or "fq=foo:bar AND
>> foo:baz" is requested?
>>
>> Who is responsible for putting fq's in the filterCache? I think one has
>> to
>> modify the logic of that class do benefit from already cached but
>> recombined
>> filterCaches.
>> This would have a little bit less performance than caching the entire
>> "foo:bar AND foo:baz" BitVector, since you need to reproduce one for that
>> special use-case, but I think the usage of the cache is far more
>> efficient,
>> if "foo:bar" and "foo:baz" occur very frequently but "foo:bar AND
>> foo:baz"
>> do not.
>>
>> What do you think?
>>
>> Regards
>>
>>
>> Jonathan Rochkind wrote:
>>>
>>> Each 'fq' clause is it's own cache key.
>>>
>>> 1. fq=foo:bar OR foo:baz
>>>      => one entry in filter cache
>>>
>>> 2. fq=foo:bar&fq=foo:baz
>>>     => two entries in filter cache, will not use cached entry from #1
>>>
>>> 3. fq=foo:bar
>>>   => One entry, will use cached entry from #2
>>>
>>> 4. fq=foo:bar
>>>    => One entry, will use cached entry from #2.
>>>
>>> So if you do queries in succession using each of those four fq's in
>>> order, you will wind up with 3 entries in the cache.
>>>
>>> Note that "fq=foo:bar OR foo:baz" is not semantically identical to
>>> "fq=foo&fq=bar".  Rather that latter is semantically identical to
>>> "fq=foo:bar AND foo:baz".   But "fq=foo&fq=bar" will be two cache
>>> entries, and "fq=foo:bar AND foo:baz" will be one cache entry, and the
>>> two won't share any cache entries.
>>>
>>>
>>> On 1/5/2011 3:17 PM, Em wrote:
>>>> Hi,
>>>>
>>>> while reading through some information on the list and in the wiki, i
>>>> found
>>>> out that something is missing:
>>>>
>>>> When I specify a filter queries like this
>>>>
>>>> fq=foo:bar OR foo:baz
>>>> or
>>>> fq=foo:bar&fq=foo:baz
>>>> or
>>>> fq=foo:bar
>>>> or
>>>> fq=foo:baz
>>>>
>>>> How many filter query entries will be cached?
>>>> Two, since there are two filters (foo:bar, foo:baz) or 3, since there
>>>> are
>>>> three different combinations (foo:bar OR foo:baz, foo:bar, foo:baz)?
>>>>
>>>> Thank you!
>>>
>>>
>>
>> Jonathan Rochkind wrote:
>>>
>>> Each 'fq' clause is it's own cache key.
>>>
>>> 1. fq=foo:bar OR foo:baz
>>>      => one entry in filter cache
>>>
>>> 2. fq=foo:bar&fq=foo:baz
>>>     => two entries in filter cache, will not use cached entry from #1
>>>
>>> 3. fq=foo:bar
>>>   => One entry, will use cached entry from #2
>>>
>>> 4. fq=foo:bar
>>>    => One entry, will use cached entry from #2.
>>>
>>> So if you do queries in succession using each of those four fq's in
>>> order, you will wind up with 3 entries in the cache.
>>>
>>> Note that "fq=foo:bar OR foo:baz" is not semantically identical to
>>> "fq=foo&fq=bar".  Rather that latter is semantically identical to
>>> "fq=foo:bar AND foo:baz".   But "fq=foo&fq=bar" will be two cache
>>> entries, and "fq=foo:bar AND foo:baz" will be one cache entry, and the
>>> two won't share any cache entries.
>>>
>>>
>>> On 1/5/2011 3:17 PM, Em wrote:
>>>> Hi,
>>>>
>>>> while reading through some information on the list and in the wiki, i
>>>> found
>>>> out that something is missing:
>>>>
>>>> When I specify a filter queries like this
>>>>
>>>> fq=foo:bar OR foo:baz
>>>> or
>>>> fq=foo:bar&fq=foo:baz
>>>> or
>>>> fq=foo:bar
>>>> or
>>>> fq=foo:baz
>>>>
>>>> How many filter query entries will be cached?
>>>> Two, since there are two filters (foo:bar, foo:baz) or 3, since there
>>>> are
>>>> three different combinations (foo:bar OR foo:baz, foo:bar, foo:baz)?
>>>>
>>>> Thank you!
>>>
>>>
>>
>> --
>> View this message in context:
>> http://lucene.472066.n3.nabble.com/FQ-Filter-Query-Caching-Differences-with-OR-and-AND-tp2201004p2204235.html
>> Sent from the Solr - User mailing list archive at Nabble.com.
>>
> 
> 
> 
> -- 
> Lance Norskog
> goks...@gmail.com
> 
> 

-- 
View this message in context: 
http://lucene.472066.n3.nabble.com/FQ-Filter-Query-Caching-Differences-with-OR-and-AND-tp2201004p2204428.html
Sent from the Solr - User mailing list archive at Nabble.com.

Reply via email to