To pull that off you'd need to have every single combination
of tags in the index which I don't see happening. Maybe
with the reduce, I don't know.

what you can do is emit([tag1, tag2], null); and then query
with key=[tag1, tag2]]; and that would work the octopus
and hockey-case you line out here, but not in general.

Cheers
Jan
--

On Jul 3, 2008, at 15:52, Brad King wrote:

Might be a hack, but would a collated view work for getting two arbitrary tags?

function (doc) {
 for(var i=0; i<doc.Tags.length; i++)
   emit([doc.Tags[i], doc.Tags[i]], null);

then you pass in ?key=["octopus","hockey"]


On Thu, Jul 3, 2008 at 9:15 AM, Jan Lehnardt <[EMAIL PROTECTED]> wrote:

On Jul 3, 2008, at 15:01, Bradford Winfrey wrote:

Hello everyone, been stalking the mailing list for a while and thought this might be worthy of a post as I was asked to solve it, yet, I couldn't!

Let's take the classic blog example document with the following
fields/values:

"_id": "1f2fc3955b91aed5e7369f0b0ba8214e",
"_rev": "1226709986",
"Author": "Bradford",
"Type": "Post",
"Body": "Just mentioning this for a sample blog post.",
"PostedDate": "2008-07-02T23:22:12-04:00",
"Subject": "My Fine Blog Post",
"Tags": ["octopus","hockey","squidward","bradford","recreation"]

Next, I'd like to find each blog post that contains ANY of the following tags ["octopus","hockey"]. Now, generally speaking this isn't so bad. We
could write a simple view:
function (doc) {
if (doc.Type == 'Post') {
 for (var i = 0;i < doc.tags.length; i++) {
   emit(doc.tags[i],doc);
 }
}
}

We would get back each one of our tags as a key, yea? Only if we supplied one at a time. So how does one go about supplying a range, array (not sure
what we'd call it here) of keys to be searched on?
http://...?key=["octopus","hockey";] maybe? I'm unsure of the plan of
attack for such a thing.  Maybe I'm just going about it in the wrong
direction.  Any thoughts?

have a look at the bottom of http://wiki.apache.org/couchdb/HttpViewApi
for the view query options. Specifically the startkey= and endkey= ones. Note that you only get consecutive ranges with that. To retrieve arbitrary
tags, you'd need to run a query per tag with the key= option.

Cheers
Jan
--



Reply via email to