For count, you need to implement sharded counters -
http://code.google.com/appengine/articles/sharding_counters.html

The code required to do the same is provided. Just understand what
sharded counters are and make use of the provided code.

-Nischal

On Jun 11, 10:37 pm, Nacho Coloma <[email protected]> wrote:
> GAE already includes a left-like operator (property LIKE 'foo%'). I
> don't know how to use it with JDO though, but it should be in the
> Reference Guide.
>
> For a full LIKE operator (LIKE '%foo%') there is a recent entry in the
> AppEngine 
> blog:http://googleappengine.blogspot.com/2010/04/making-your-app-searchabl...
>
> Hope  this helps.
>
> On Jun 11, 7:12 pm, RAVINDER MAAN <[email protected]> wrote:
>
>
>
> > thanks john
> >    any thought for like operator of sql.how can we implement like operator
> > of sql in GAE
>
> > On Fri, Jun 11, 2010 at 8:49 PM, John Patterson 
> > <[email protected]>wrote:
>
> > > The best you could probably do is load into memory a structure that keeps
> > > the employee type for every employee.  When the user types some letters 
> > > of a
> > > name to search for you can perform a keys-only query and lookup the 
> > > employee
> > > type in this structure (rather than load the entity)
>
> > > You would need 2 bits per employee (for 4 types) so even a million
> > > employees would only require 250KB of memory (an array of 30K longs) which
> > > shouldn't take too long to read from memcache when an instance starts.
>
> > > You would then need to iterate over every result and count which type the
> > > employee is.  To optimise this you might cache the counts in memcache of 1
> > > and 2 letter searches.  So then you would only need to count on the fly
> > > three letter searches i.e. all employees with names starting with "smi"
>
> > > On 11 Jun 2010, at 20:53, RAVINDER MAAN wrote:
>
> > > number of employee entities is going to be high .So i guess that
> > > possibility of getting more then 1000 employees for any search is quite
> > > high.
>
> > > On Fri, Jun 11, 2010 at 6:56 PM, John Patterson 
> > > <[email protected]>wrote:
>
> > >> A lot depends on how many Employee entities you have.
>
> > >> You could do a sub search for each of the 4 employee types and use COUNT
> > >> to get the results.  This will only work up to 1000 employees per 
> > >> employee
> > >> type.
>
> > >> Twig can execute queries in parallel so this would take no more time than
> > >> running your original query.
>
> > >> On 11 Jun 2010, at 19:39, RAVINDER MAAN wrote:
>
> > >> Thanks for your reply Ravi
> > >>    let me explain the entire scenario.I have an employee entity .User can
> > >> search employees by giving part of name .There are four type of 
> > >> employees .I
> > >> have to show number of employees matching user search criteria for every
> > >> type of employee under different tabs.Actual results are to be displayed
> > >> only if user open that tab.
> > >> In SQL term we could write following query
>
> > >> Select count(*) from employee where name like '%<searchname>%' and type
> > >> ='A' ;
>
> > >> My first problem is that i dint find any equivalent of like operator.Is
> > >> there any way to do it?
> > >> Secondly we can not keep record count for each search combination.what
> > >> will you suggest for this case?
> > >> Thanks once again.
>
> > >> On Fri, Jun 11, 2010 at 4:23 PM, Ravi <[email protected]> wrote:
>
> > >>> Google app engine designed to work for any numbers of records with in
> > >>> minimum time, so SQL features like counting the records whenever
> > >>> needed is not supported.
> > >>> So you need to take care of such counter by urself at the time of
> > >>> adding or deleting the records in a table/entity.
>
> > >>> If you just want total number of records and dont care if counting
> > >>> happened in last 24 hours then look into low level api for datastore
> > >>> statistics, GAE refreshes total count every 24 hours and you can read
> > >>> the total count from there.
>
> > >>> And if you want count of records with some where clause, then you need
> > >>> to maintain it.
>
> > >>> like if u want like this
> > >>> select count(0) from tb where tb.propA='someValue'
>
> > >>> then you may need to create a new entity say counterForTb, and have
> > >>> few fields entityName and count and where clause columns
> > >>> and whenevr you add a new record in tb then increase the count of that
> > >>> record in counter table and on delete decrease it.
>
> > >>> Something for google guys
> > >>> Just realized that all columns are indexed unless we specify to not to
> > >>> index, and there must be some index meta data/statistics saved
> > >>> somewhere in google data stores about index(like total records
> > >>> matching to this index). And if that stats can be accessible through
> > >>> some APIs then we may be able to get total count just by reading data
> > >>> from indexes stats.
> > >>> Is this something feasible?
>
> > >>> On Jun 11, 11:39 am, RAVINDER MAAN <[email protected]> wrote:
> > >>> > How can we get records count for a query in JDO.
> > >>> > In sql we have select count(*) from <table_name>
> > >>> > i want to get number of records returned by a query. what is the
> > >>> > efficient way to do that.One option is to use size() function .I think
> > >>> > it is not best way.
>
> > >>> --
> > >>> You received this message because you are subscribed to the Google 
> > >>> Groups
> > >>> "Google App Engine for Java" group.
> > >>> To post to this group, send email to
> > >>> [email protected].
> > >>> To unsubscribe from this group, send email to
> > >>> [email protected]<google-appengine-java%2B
> > >>>  [email protected]>
> > >>> .
> > >>> For more options, visit this group at
> > >>>http://groups.google.com/group/google-appengine-java?hl=en.
>
> > >> --
> > >> Regards,
> > >> Ravinder Singh Maan
>
> > >> --
> > >> You received this message because you are subscribed to the Google Groups
> > >> "Google App Engine for Java" group.
> > >> To post to this group, send email to
> > >> [email protected].
> > >> To unsubscribe from this group, send email to
> > >> [email protected].
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/google-appengine-java?hl=en.
>
> > >> --
> > >> You received this message because you are subscribed to the Google Groups
> > >> "Google App Engine for Java" group.
> > >> To post to this group, send email to
> > >> [email protected].
> > >> To unsubscribe from this group, send email to
> > >> [email protected]<google-appengine-java%2B
> > >>  [email protected]>
> > >> .
> > >> For more options, visit this group at
> > >>http://groups.google.com/group/google-appengine-java?hl=en.
>
> > > --
> > > Regards,
> > > Ravinder Singh Maan
>
> > > --
> > > You received this message because you are subscribed to the Google Groups
> > > "Google App Engine for Java" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected].
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
>
> > >  --
> > > You received this message because you are subscribed to the Google Groups
> > > "Google App Engine for Java" group.
> > > To post to this group, send email to
> > > [email protected].
> > > To unsubscribe from this group, send email to
> > > [email protected]<google-appengine-java%2B
> > >  [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/google-appengine-java?hl=en.
>
> > --
> > Regards,
> > Ravinder Singh Maan

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to