On Feb 22, 2011, at 9:06 PM, Javier Julio <[email protected]> wrote:

> Paul, thanks for confirming. Can you elaborate on "the non-wildcard selection 
> criteria as a leading prefix"? What does that mean?
> 
> So to handle an AND/OR statement would best be or perhaps only way to do with 
> multiple views? So since Andrey wanted to support "brand and category" or 
> "brand or category" he would need 3 views right?
> 

The root is that CouchDB views don't do OR queries.  For AND the terms need to 
be ordered so you can apply left to right.

In a funny aside, one of the amusing from couchdb-lucene is "for when you want 
foo OR bar".

> One for item, brand and category, second for item and brand, and the third 
> for item and category?
> 
> On Feb 22, 2011, at 9:01 PM, Paul J. Davis wrote:
> 
>> Yep, the multi-key post doesn't require string keys.
>> 
>> Also, when you want wild card behavior you need a view that has the 
>> non-wildcard selection criteria as a leading prefix. It's easiest to think 
>> about in terms of array slicing.
>> 
>> For the OP I would suggest multiple views with the required array orders for 
>> the expected queries.  
>> 
>> On Feb 22, 2011, at 8:52 PM, Javier Julio <[email protected]> wrote:
>> 
>>> Andrey,
>>> 
>>> Great question as I had been struggling with the same. In the docs its kind 
>>> of buried there but you can post multiple keys to a view. I believe this is 
>>> what you are looking for. Correct me if I'm wrong. So I'd create a view 
>>> where the index has item, brand and category and then you can just include 
>>> a key set for each grouping you want in the post body.
>>> 
>>> If you look under the table with all the query params in this section of 
>>> the View docs: 
>>> http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options you'll see a 
>>> that it mentions you can post multiple keys to a view.
>>> 
>>> I'm still learning myself so I'm not sure if you can post complex keys 
>>> (only simple strings are used). I would assume so since its not stated 
>>> otherwise but I believe this is what will solve your problem.
>>> 
>>> Ciao!
>>> Javi
>>> 
>>> On Feb 22, 2011, at 8:06 PM, Andrey Cherkashin wrote:
>>> 
>>>> Hello,
>>>> 
>>>> I have a problem, I can't understand how to write map function that solves 
>>>> my problem:
>>>> 
>>>> I have a lot of "documents", each document has type (e.g. item,  user), 
>>>> category and brand. So i have map functions that gives me a list of every 
>>>> document that has type item (that's easy), but how i can get list of all 
>>>> documents that has brand == xxx or category == yyy or even 
>>>> brand==xxx&category=zzz (xxx,yyy,zzz different every time).
>>> 
> 

Reply via email to