incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ben Browning <ben...@gmail.com>
Subject Re: Range search on keys not working?
Date Wed, 02 Jun 2010 12:53:06 GMT
Martin,

On Wed, Jun 2, 2010 at 8:34 AM, Dr. Martin Grabmüller
<Martin.Grabmueller@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:david@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.Grabmueller@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:david@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 <david@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 <tcurdt@vafer.org> wrote:
>>>>
>>>> Sounds like you are not using an order preserving partitioner?
>>>>
>>>> On Wed, Jun 2, 2010 at 13:48, David Boxenhorn <david@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."?
>>>
>>
>
>

Mime
View raw message