Print

Print


On Wed, Jul 16, 2008 at 12:21 AM, Godmar Back <[log in to unmask]> wrote:
> Aside from the limitations imposed by the index model, the problem
> then is fundamentally similar to how you index MARC data for use in
> any discovery system.

I think Godmar is referring to GAE's lack of keyword searching.  To
elaborate, the following is from
http://code.google.com/appengine/docs/datastore/queriesandindexes.html

"""
Tip: Query filters do not have an explicit way to match just part of a
string value, but you can fake a prefix match using inequality
filters:

db.GqlQuery("SELECT * FROM MyModel WHERE prop >= :1 AND prop < :2",
"abc", "abc" + "\xEF\xBF\xBD")

This matches every MyModel entity with a string property prop that
begins with the characters abc. The byte string "\xEF\xBF\xBD"
represents the largest possible Unicode character. When the property
values are sorted in an index, the values that fall in this range are
all of the values that begin with the given prefix.
"""

So it's a bit of a hack just to get a left-anchored search.  Querying
for a particular keyword anywhere within a string value would be even
more work.  For small datasets, I guess you could iterate through
every record.  But for anything larger, you'd probably want to figure
out a way to manually build an index within the Google datastore, or
else keep the indexing outside GAE, and just use GAE for fetching
specified records.  Any ideas on how that might work?

Keith