Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9D1FCB251 for ; Wed, 18 Jan 2012 11:44:45 +0000 (UTC) Received: (qmail 64634 invoked by uid 500); 18 Jan 2012 11:44:43 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 64592 invoked by uid 500); 18 Jan 2012 11:44:43 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 64581 invoked by uid 99); 18 Jan 2012 11:44:42 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2012 11:44:42 +0000 X-ASF-Spam-Status: No, hits=3.6 required=5.0 tests=FREEMAIL_REPLY,FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,HTML_MESSAGE,NORMAL_HTTP_TO_IP,RCVD_IN_DNSWL_LOW,SPF_PASS,WEIRD_PORT,WEIRD_QUOTING X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of cgsmcmlxxv@gmail.com designates 209.85.216.180 as permitted sender) Received: from [209.85.216.180] (HELO mail-qy0-f180.google.com) (209.85.216.180) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 18 Jan 2012 11:44:38 +0000 Received: by qcsp15 with SMTP id p15so2846041qcs.11 for ; Wed, 18 Jan 2012 03:44:17 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=sk/PTDoZwdmDSE4xc0AJOMRFmN0mVoO/FhGQBY43EdI=; b=uNxGoc2vnjyB83b9bnVaTj2Rgc+T9HlTNyJqQjv0luS/d1wCmd+5/klgmAkFrB2DpB dLhsKMOD70KxfxHpulFtY5XJgsGOMXssYyotr/0xKrz2P9dcOS3Hsa0UeLzZelpTTFWP zTzkXh8VXQv+ZOd7T1HxjrBA3I0N9wfeURXLA= MIME-Version: 1.0 Received: by 10.229.78.217 with SMTP id m25mr6598025qck.98.1326887057579; Wed, 18 Jan 2012 03:44:17 -0800 (PST) Received: by 10.229.76.202 with HTTP; Wed, 18 Jan 2012 03:44:17 -0800 (PST) In-Reply-To: References: Date: Wed, 18 Jan 2012 12:44:17 +0100 Message-ID: Subject: Re: get view with a list of keys From: CGS To: user@couchdb.apache.org Content-Type: multipart/alternative; boundary=0023544713d0b95d7f04b6cbf779 --0023544713d0b95d7f04b6cbf779 Content-Type: text/plain; charset=ISO-8859-1 ...and, yes, it is cache-able because if I repeat the request (with the exact same parameters), the browser reports "304 Not Modified". CGS On Wed, Jan 18, 2012 at 12:34 PM, CGS wrote: > > Here is an example (I used list function, but it works with pure map > function nevertheless): > > 1. jQuery plugin: > > $.test = $.test || {}; > $.extend($.test, { > fetch_data_startendkey: function(options) { > options = options || {}; > $.ajax({ > type : "GET", > url : " > http://my_domain.domain_type:5984/mydatabase/_design/design_name/_list/list_function_name/view_function_name?startkey= > "+options.startkey+"&endkey="+options.endkey+"&limit="+options.limit+"&skip="+options.skip+"&descending="+options.descending, > dataType : "json", > async : false, > global : false, > data : {}, > error : options.error, > success : options.success > }); > } > }); > > 2. jQuery callback: > > $.test.fetch_data_startendkey({ > startkey: "my_string", > endkey: "my_other_string", > limit: mylimit, > skip: myoffset, > descending: my_descending_boolean, > success : function(data, textStatus, headers) { > /* do something with the predefined errors and the > returned data if no predefined error returned */ > }, > error : function(code, error, reason) { > /* do something with the error */ > } > }); > > where "my_*string" is the list transformed in string (e.g., > "[\""+key1+"\",\""+key2+...+"\"]", whatever method used to get that > string), mylimit and myoffset are integers and so on. No manual encoding > needed (handled by the browser). > > 3. The request in log shows no difference from the direct request from the > address bar. > > This works for me without any problem for my CouchDB 1.1.0. I know the > method can be improved to be more robust, but I have no time now for that. > Nevertheless, GET method works and it doesn't require manual encoding. > > CGS > > PS: I hope I don't have typos and neither I omitted something as I am > quite tired now. If I did, please, let me know. > > > > > > On Wed, Jan 18, 2012 at 12:01 PM, Marcello Nuccio < > marcello.nuccio@gmail.com> wrote: > >> I'm not sure to follow... >> >> 1. are you sure the GET does work? When I try, the key[] parameters are >> ignored. >> >> 2. IMHO the advantage of GET is cache-ability. Building a JSON is quite >> easy: >> JSON.stringify({ keys: [ "key1", "key2" ] }); >> >> Can you give some more information? >> >> Thanks, >> Marcello >> >> 2012/1/18 CGS : >> > The problem with POST method is that you need to do the encoding >> manually, >> > while with GET method instead of &key=["key1",...], you get >> > &key[]=["key1"]&key[]=... To solve the problem, for example, I transform >> > the full query in a string and I attach it manually to the web address. >> In >> > that way, the browser takes care of encoding for me and I avoid the >> mess. I >> > use this method under jQuery AJAX (don't forget to add \" for the double >> > quota required in the query). >> > >> > Hope it will help. >> > >> > CGS >> > >> > >> > >> > >> > >> > On Wed, Jan 18, 2012 at 11:29 AM, Marcello Nuccio < >> marcello.nuccio@gmail.com >> >> wrote: >> > >> >> Yes, but you need to do a POST, not a GET: >> >> >> >> http://wiki.apache.org/couchdb/HTTP_view_API#Querying_Options >> >> >> >> put the following JSON in the body: >> >> {"keys": ["key1", "key2", ...]} >> >> >> >> Marcello >> >> >> >> 2012/1/18 Alexandre Masselot : >> >> > Hello, >> >> > >> >> > I'm using view with a simple map that extract a couple of values (we >> >> store >> >> > millions of web page info in couchdb and I need to access rapidly a >> md5 >> >> > field to know whether we should treat a crawled page or if we already >> >> know >> >> > it). >> >> > >> >> > It's fine to get the view output for one page >> >> > http://127.0.0.1:5984/honbot/_design/projections/_view/md5?key= >> >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" >> >> > >> >> > >> >> > For saving, we use bulk_docs to save doc per 1000 slices and that >> goes >> >> much >> >> > faster. >> >> > >> >> > My question is: is it possible to make a view request list above, but >> >> with >> >> > a list of key? >> >> > Let's say >> >> > "http%253A%252F%252Fwww.gesunde-maenner.ch%252Fhtml%252F" >> >> > and "http%253A%252F%252Fwww.pipo.com" >> >> > >> >> > >> >> > thanks for the help >> >> > alex >> >> > -- >> >> > Alexandre Masselot >> >> > >> >> > http://alexandre-masselot.blogspot.com/ >> >> >> > > --0023544713d0b95d7f04b6cbf779--