incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Adam Wolff <awo...@gmail.com>
Subject Re: couchdb soriting with value question?
Date Sat, 20 Jun 2009 18:12:43 GMT
A little jumpy with the space bar today. As I was saying,Depending on the
nature of your reduce function, you may be able to do something like this:
    emit([key, sortKey], {value: value, sortKey: sortKey})

Then you reduce to the top K values and emit a sorted list that looks like:
   [ {value : value, sortKey:first} .... {value: value, sortKey: Kth} ]

You have to arbitrary limit the number of values due to this bug/feature:
http://wiki.apache.org/couchdb/Introduction_to_CouchDB_views#head-83d2e6cce911a0d314d0c5234ff5f19646408113

If you want to page, you query the index starting with [key, Kth] and then
reduce the result against the list from the first page (in fact, you can use
the reduce function you write in the DB for this if you have an app
environment where you can run javascript.)

A

On Sat, Jun 20, 2009 at 11:05 AM, Adam Wolff <awolff@gmail.com> wrote:

> One patter to solve for this appears to be to index by the sort key, so
> you
>
>
> On Sat, Jun 20, 2009 at 8:13 AM, Chris Anderson <jchris@apache.org> wrote:
>
>> On Sat, Jun 20, 2009 at 12:49 AM, hhsuper<hhsuper@gmail.com> wrote:
>> > Thanks Jan,
>> >
>> > when i need to paginate the data queried from view, you mean the sorting
>> and
>> > paginating should all outside the couchdb?
>>
>> Sorting by value is mathematically tough, if you want to read more
>> about the underlying issues check out
>> http://labs.google.com/papers/sawzall.html
>>
>> If you can live with the sorted order being out of date, the simplest
>> thing to do is copy the results of a group=true query to another
>> database (via a scripting language like ruby or python) and then use a
>> view to sort those results by value. It won't be incrementally updated
>> as records are updated in the original database, but it will give you
>> an exact ordering by value.
>>
>> We are thinking of building something like this into CouchDB because
>> it is such a common query, but for now you've got to do it yourself.
>>
>> Chris
>>
>> >
>> > On Sat, Jun 20, 2009 at 3:39 PM, Jan Lehnardt <jan@apache.org> wrote:
>> >
>> >>
>> >> On 20 Jun 2009, at 03:05, hhsuper wrote:
>> >>
>> >>  Hi,
>> >>>
>> >>> i have a view (impl with map/reduce function), the value need to be
>> >>> caculated in reduce function(for group reason etc.), and then how
>> could i
>> >>> sorting by the value column?
>> >>>
>> >>
>> >> You need to sort by value outside of CouchDB.
>> >>
>> >> Cheers
>> >> Jan
>> >> --
>> >>
>> >>
>> >>
>> >
>> >
>> > --
>> > Yours sincerely
>> >
>> > Jack Su
>> >
>>
>>
>>
>> --
>> Chris Anderson
>> http://jchrisa.net
>> http://couch.io
>>
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message