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 >