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."?