Got the first option that you suggested. However, In the second one, are you suggested to use, for e.g, key='Marcos' & store cols, for all users of that name, containing userId inside that row. That way it would have to read multiple rows while user is doing a single search.
On Wed, Nov 16, 2011 at 10:47 AM, samal <samalgo...@gmail.com> wrote: > > > I need to add 'search users' functionality to my application. (The >>> trigger for fetching searched items(like google instant search) is made >>> when 3 letters have been typed in). >>> > >>> > For this, I make a CF with String type keys. Each such key is made of >>> first 3 letters of a user's name. >>> > >>> > Thus all names starting with 'Mar-' are stored in single row (with >>> key="Mar"). >>> > The column names are framed as remaining letters of the names. Thus, a >>> name 'Marcos' will be stored within rowkey "Mar" & col name "cos". The id >>> will be stored as column value. Since there could be many users with same >>> name. Thus I would have multple userIds(of users named "Marcos") to be >>> stored inside columnname "cos" under key "Mar". Thus, >>> > >>> > 1. Supercolumn seems to be a better fit for my use case(so that ids of >>> users with same name may fit as sub-columns inside a super-column) but >>> since supercolumns are not encouraged thus I want to use an alternative >>> schema for this usecase if possible. Could you suggest some ideas on this ? >>> > >>> >> > Aditya, > > Have you any given thought on Composite columns [1]. I think it can help > you solve your problem of multiple user with same name. > > mar:{ > {cos,unique_user_id}:unique_user_id, > {cos,1}:1, > {cos,2}:2, > {cos,3}:3, > > // {utf8,timeUUID}:timeUUID, > } > OR > you can try wide rows indexing user name to ID's > > marcos{ > user1:' ', > user2:' ', > user3:' ' > } > > [1]http://www.slideshare.net/edanuff/indexing-in-cassandra > >