On Jun 28, 2010, at 1:51 PM, [email protected] wrote:

> I find it a really great idea. If it can be set per design doc, of course.

Exactly. It should't be a huge patch if anyone wants to take it on. :)

Chris

> 
> Mickael
> 
> ----- Mail Original -----
> De: "J Chris Anderson" <[email protected]>
> À: [email protected]
> Envoyé: Lundi 28 Juin 2010 21h34:16 GMT +01:00 Amsterdam / Berlin / Berne / 
> Rome / Stockholm / Vienne
> Objet: Re: selecting a random subset of a view
> 
> 
> On Jun 28, 2010, at 12:28 PM, [email protected] wrote:
> 
>> It's an error to do this if I read the doc correctly, because shows and 
>> lists functions should be idempotent. It's specified in the wiki.
>> 
> 
> It would be fine to have a config option to suppress the Etags on show and 
> list. Then you'd have no risk of improperly caching the output here. For the 
> time being, you can probably configure an http proxy to ignore and strip the 
> etags.
> 
> Chris
> 
>> Mickael
>> 
>> ----- Mail Original -----
>> De: "Jan Prieser" <[email protected]>
>> À: [email protected]
>> Envoyé: Lundi 28 Juin 2010 18h37:38 GMT +01:00 Amsterdam / Berlin / Berne / 
>> Rome / Stockholm / Vienne
>> Objet: Re: selecting a random subset of a view
>> 
>> hi Mickael,
>> 
>> i've had the same problem and used the lists-feature from couch.
>> 
>> my list-function looks like this:
>> 
>> function(head,req) {
>>  function shuffle(ary) {
>>    function randOrd(){ return Math.round(Math.random()) - 0.5; }
>>    ary.sort( randOrd );
>>  }
>>  body={};
>>  eval('body='+req.body);
>>  out = head;
>>  out.rows = [];
>>  if(out.total_rows > out.offset) {
>>    while (row = getRow()) {
>>        out.rows.push(row);
>>    }
>>  }
>>  shuffle(out.rows);
>>  if (body && body.rlimit) {
>>    out.rows = out.rows.slice(-body.rlimit);
>>  }
>>  return toJSON(out) + '\n';
>> }
>> 
>> maybe you could use a range with startkey and endkey, if the number of 
>> rows is to big. I didn't test the performance with bigger datasets.
>> 
>> 
>> Am 28.06.2010 15:29, schrieb [email protected]:
>>> Hello couchers,
>>> 
>>> how would you do to select a random subset of a view result (a simple view 
>>> with map only).
>>> 
>>> Example (I don't write the full view response array for clarity)
>>> 
>>> When called normally, my view returns :
>>> 
>>> {
>>> ...
>>> rows: [
>>> {id: aa1},
>>> {id: aa2},
>>> {id: aa3},
>>> {id: aa4},
>>> {id: aa5},
>>> {id: aa6},
>>> {id: aa7},
>>> {id: aa8},
>>> {id: aa9}
>>> ]
>>> }
>>> 
>>> And I want only three of those rows, randomly chosen. So I launch the magic 
>>> "get three random rows" feature, and it gives me :
>>> 
>>> {
>>> ...
>>> rows: [
>>> {id: aa5},
>>> {id: aa3},
>>> {id: aa6}
>>> ]
>>> }
>>> 
>>> The second time I launch the same magic "get three random rows" I got:
>>> {
>>> ...
>>> rows: [
>>> {id: aa7},
>>> {id: aa1},
>>> {id: aa5}
>>> ]
>>> }
>>> 
>>> Thanks for your advices
>>> 
>>> Mickael
> 

Reply via email to