We saw this error yesterday too, but only for one of our users. The query succeeds for everyone else...
(We were doing a fetch instead of a count, but otherwise it seems pretty similar) On Jan 8, 11:48 am, Ryan W <rwilli...@gmail.com> wrote: > All of a sudden this morning, I began getting this error in my app, > when doing a search inside of an internal process (searching for > duplicates) and then taking a count() of the results. It was working > fine before. I have this same query on a search page as well, and > it's still fine. The search page does not call count() though. > Perhaps it has something to do with the number of results being > returned, I'll try to instrument to get a apples to apples search > string comparison. Any ideas on this though? > > This is the stack trace: > > File "/base/data/home/apps/...", line 196, in approvePost > if qPosts.count() > 0: > File "/base/python_lib/versions/1/google/appengine/ext/db/ > __init__.py", line 1353, in count > return self._get_query().Count(limit=limit) > File "/base/python_lib/versions/1/google/appengine/api/ > datastore.py", line 960, in Count > raise _ToDatastoreError(err) > File "/base/python_lib/versions/1/google/appengine/api/ > datastore.py", line 1637, in _ToDatastoreError > raise errors[err.application_error](err.error_detail) > NeedIndexError: The built-in indices are not efficient enough for this > query and your data. Please add a composite index for this query. > > This is the offending code: > > qPosts = datamodel.Post.all().search(search_string).filter("approved = > ", True) > if qPosts.count() > 0: > > This is the model: > > class Post(search.SearchableModel): > user = db.ReferenceProperty(User, collection_name='posts') > status_id = db.IntegerProperty(required=True) > entry = db.TextProperty(required=True) > entry_title = db.StringProperty(required=True,multiline=True) > entry_link = db.LinkProperty(required=True) > approved = db.BooleanProperty(required=True, default=False) > reject_reason = db.StringListProperty(default=None) > retweet_status_id = db.IntegerProperty(required=False) > in_reply_to_status_id = db.IntegerProperty(required=False) > short_url = db.LinkProperty(required=False) > hash = db.StringProperty(required=False) > source = db.StringProperty(required=False) > view_count = db.IntegerProperty(required=True, default=0) > reply_count = db.IntegerProperty(required=True, default=0) > like_count = db.IntegerProperty(required=True, default=0) > published = db.DateTimeProperty() > created = db.DateTimeProperty(auto_now_add=True) > > I tried adding this index, but was still getting the error: > > - kind: Post > properties: > - name: __searchable_text_index > - name: approved --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---