incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hhsuper <hhsu...@gmail.com>
Subject Re: couchdb soriting with value question?
Date Sun, 21 Jun 2009 03:29:37 GMT
Thanks

Hi, Adam, i know your mean, but my sort key must isn't available at map
time(it caculated in reduce func)

Hi, Chris, from your answer may i say that couchdb doesn't directly support
this feature now? maybe i don't use couchdb properly, can you give me some
suggestion? my application scenario is:

I have a php+mysql application, and in some part i save some user's
behavior( or you could say user's score stats.) as couchdb document with
Phly adapter, for the analyzing without affecting mysql's query, now i want
get stats result from the couchdb view to display to users on the web page,
so the previous question pop out? i also need paging and sorting

is that a proper usage?

On Sun, Jun 21, 2009 at 3:09 AM, Adam Wolff <awolff@gmail.com> wrote:

> Hmm. I guess this only works if the sort key is available at map time.
> This is more for finding  uniques.
>
> A
> On Saturday, June 20, 2009, Adam Wolff <awolff@gmail.com> wrote:
> > 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
> >
> >
> >
> >
> >
>



-- 
Yours sincerely

Jack Su

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