To use start and finish parameters at all, you need to use OPP. Start and
finish parameters don't work if you don't use OPP, i.e. the result set won't
be:  start =< resultSet < finish

2010/6/9 Ben Browning <ben...@gmail.com>

> OPP stands for Order-Preserving Partitioner. For more information on
> partitioners, look here:
>
> http://wiki.apache.org/cassandra/StorageConfiguration#Partitioner
>
> To do key range slices that use both start and finish parameters and
> retrieve keys in-order, you need to use an ordered partitioner -
> either the built-in OPP or your own custom one.
>
> Ben
>
> On Tue, Jun 8, 2010 at 10:26 PM, sina <ywf2...@sina.com> wrote:
> > what's the mean of opp? And How can i make the "start" and "finish"
> useful
> > and make sense?
> >
> >
> > 2010-06-09
> > ________________________________
> > 9527
> > ________________________________
> > 发件人: Ben Browning
> > 发送时间: 2010-06-02  21:08:57
> > 收件人: user
> > 抄送:
> > 主题: Re: Range search on keys not working?
> > They exist because when using OPP they are useful and make sense.
> > On Wed, Jun 2, 2010 at 8:59 AM, David Boxenhorn <da...@lookin2.com>
> wrote:
> >> So why do the "start" and "finish" range parameters exist?
> >>
> >> On Wed, Jun 2, 2010 at 3:53 PM, Ben Browning <ben...@gmail.com> wrote:
> >>>
> >>> Martin,
> >>>
> >>> On Wed, Jun 2, 2010 at 8:34 AM, Dr. Martin Grabmüller
> >>> <martin.grabmuel...@eleven.de> wrote:
> >>> > I think you can specify an end key, but it should be a key which does
> >>> > exist
> >>> > in your column family.
> >>>
> >>>
> >>> Logically, it doesn't make sense to ever specify an end key with
> >>> random partitioner. If you specified a start key of "aaa" and and end
> >>> key of "aac" you might get back as results "aaa", "zfc", "hik", etc.
> >>> And, even if you have a key of "aab" it might not show up. Key ranges
> >>> only make sense with order-preserving partitioner. The only time to
> >>> ever use a key range with random partitioner is when you want to
> >>> iterate over all keys in the CF.
> >>>
> >>> Ben
> >>>
> >>>
> >>> > But maybe I'm off the track here and someone else here knows more
> about
> >>> > this
> >>> > key range stuff.
> >>> >
> >>> > Martin
> >>> >
> >>> > ________________________________
> >>> > From: David Boxenhorn [mailto:da...@lookin2.com]
> >>> > Sent: Wednesday, June 02, 2010 2:30 PM
> >>> > To: user@cassandra.apache.org
> >>> > Subject: Re: Range search on keys not working?
> >>> >
> >>> > In other words, I should check the values as I iterate, and stop
> >>> > iterating
> >>> > when I get out of range?
> >>> >
> >>> > I'll try that!
> >>> >
> >>> > On Wed, Jun 2, 2010 at 3:15 PM, Dr. Martin Grabmüller
> >>> > <martin.grabmuel...@eleven.de> wrote:
> >>> >>
> >>> >> When not using OOP, you should not use something like 'CATEGORY/' as
> >>> >> the
> >>> >> end key.
> >>> >> Use the empty string as the end key and limit the number of returned
> >>> >> keys,
> >>> >> as you did with
> >>> >> the 'max' value.
> >>> >>
> >>> >> If I understand correctly, the end key is used to generate an end
> token
> >>> >> by
> >>> >> hashing it, and
> >>> >> there is not the same correspondence between 'CATEGORY' and
> 'CATEGORY/'
> >>> >> as
> >>> >> for
> >>> >> hash('CATEGORY') and hash('CATEGORY/').
> >>> >>
> >>> >> At least, this was the explanation I gave myself when I had the same
> >>> >> problem.
> >>> >>
> >>> >> The solution is to iterate through the keys by always using the last
> >>> >> key
> >>> >> returned as the
> >>> >> start key for the next call to get_range_slices, and the to drop the
> >>> >> first
> >>> >> element from
> >>> >> the result.
> >>> >>
> >>> >> HTH,
> >>> >>   Martin
> >>> >>
> >>> >> ________________________________
> >>> >> From: David Boxenhorn [mailto:da...@lookin2.com]
> >>> >> Sent: Wednesday, June 02, 2010 2:01 PM
> >>> >> To: user@cassandra.apache.org
> >>> >> Subject: Re: Range search on keys not working?
> >>> >>
> >>> >> The previous thread where we discussed this is called, "key is
> sorted?"
> >>> >>
> >>> >>
> >>> >> On Wed, Jun 2, 2010 at 2:56 PM, David Boxenhorn <da...@lookin2.com>
> >>> >> wrote:
> >>> >>>
> >>> >>> I'm not using OPP. But I was assured on earlier threads (I asked
> >>> >>> several
> >>> >>> times to be sure) that it would work as stated below: the results
> >>> >>> would not
> >>> >>> be ordered, but they would be correct.
> >>> >>>
> >>> >>> On Wed, Jun 2, 2010 at 2:51 PM, Torsten Curdt <tcu...@vafer.org>
> >>> >>> wrote:
> >>> >>>>
> >>> >>>> Sounds like you are not using an order preserving partitioner?
> >>> >>>>
> >>> >>>> On Wed, Jun 2, 2010 at 13:48, David Boxenhorn <da...@lookin2.com>
> >>> >>>> wrote:
> >>> >>>> > Range search on keys is not working for me. I was assured in
> >>> >>>> > earlier
> >>> >>>> > threads
> >>> >>>> > that range search would work, but the results would not be
> ordered.
> >>> >>>> >
> >>> >>>> > I'm trying to get all the rows that start with "CATEGORY."
> >>> >>>> >
> >>> >>>> > I'm doing:
> >>> >>>> >
> >>> >>>> > String start = "CATEGORY.";
> >>> >>>> > .
> >>> >>>> > .
> >>> >>>> > .
> >>> >>>> > keyspace.getSuperRangeSlice(columnParent, slicePredicate, start,
> >>> >>>> > "CATEGORY/", max)
> >>> >>>> > .
> >>> >>>> > .
> >>> >>>> > .
> >>> >>>> >
> >>> >>>> > in a loop, setting start to the last key each time - but I'm
> >>> >>>> > getting
> >>> >>>> > rows
> >>> >>>> > that don't start with "CATEGORY."!!
> >>> >>>> >
> >>> >>>> > How do I get all rows that start with "CATEGORY."?
> >>> >>>
> >>> >>
> >>> >
> >>> >
> >>
> >>
> > __________ Information from ESET NOD32 Antivirus, version of virus
> signature database 5164 (20100601) __________
> > The message was checked by ESET NOD32 Antivirus.
> > http://www.eset.com
>

Reply via email to