Brian M. Hunt
Brian M. Hunt

Reputation: 83858

How can one perform full text search in Google App Engine?

It's a simple question, but I haven't found the answer anywhere. Thoughts and input appreciated.

I'm using Django, too, for what it's worth. :)

Cheers.

Upvotes: 14

Views: 6944

Answers (7)

andy boot
andy boot

Reputation: 11767

An overview of the Python App Engine searches that I am aware of:

Google did add a cut down search using SearchableModel although that has limitations (5000 indexed word limit, String property only not Text):

Or as another posters have pointed out there are these options:

The Quick and simple text search:

This product which has a fairly comprehensive free version and a more extensive commercial version:


I've read that Google do have a project to bring full text search to App Engine although this is not scheduled to happen any time soon


I'd really like to see a comparison of the various searching frameworks and see how they stack up to each other. Does anyone know of any report like this?


Edit: Google Search API now available (although still experimental)

Upvotes: 5

systempuntoout
systempuntoout

Reputation: 74134

The Search API is now available as experimental for Java and Python .

Upvotes: 6

drxzcl
drxzcl

Reputation: 2962

You should be able to adapt Whoosh! to write in the datastore instead of on disk. It's a pure python full-text search engine. It's not as fast or full-featured as Lucene, but it should run on GAE without too many modifications.

Upvotes: 0

jrrto
jrrto

Reputation: 21

@ The Quick and simple text search: http://www.billkatz.com/2009/6/Simple-Full-Text-Search-for-App-Engine


this solution did not work for me - and looking at the limitations below, it is unlikely to be useful for real use cases.

  1. It uses StringListProperty to store phrases which has a limitation of 500 characters.
  2. It does not work with the standard query filters.

Upvotes: 2

Jonathan Feinberg
Jonathan Feinberg

Reputation: 45364

For now, the real answer is that there is no real full-text search on Google App Engine. The solutions provided by the other answers here are fine for toy data sets, but do not scale to anything more than O(10000) documents or so. Google will have to provide search as an infrastructural feature of GAE. See the feature request for (mostly superfluous) discussion.

Upvotes: 3

Niklas Rosencrantz
Niklas Rosencrantz

Reputation: 26671

Issue 217 Bill Katz released a package to deal with and http://gae-full-text-search.appspot.com/ is available alternatively, levensthein is a another match measure

Upvotes: 1

Alex Martelli
Alex Martelli

Reputation: 882681

With Java GAE, you could use Compass, but that won't help with Django. For Python, Bill Katz offers one solution -- open source -- and these guys offer a Django-specific approach which, however, is free only for non-commercial applications (i.e. if your app makes money they want you to pay for their full-text search). I have no real-world experience with either of these solutions so I can't really give well-grounded recommendations, but from what one can see with just a little playing around they seem quite useful.

Upvotes: 5

Related Questions