I have a query that is very recently starting to throw:
"The built-in indices are not efficient enough for this query and your data. Please add a composite index for this query."
I checked the line on which this exception is being thrown, and the problem query is this one:
count = self.vote_set.filter("direction =", 1).count()
This is literally a one-filter operation using appengine’s built-in backreferences. I have no idea how to optimize this query…anyone have any suggestions? I tried to add this index:
- kind: Vote
properties:
- name: direction
direction: desc
- kind: Vote
properties:
- name: direction
And I got a message (obviously) saying this was an unnecessary index.
Thanks for your help in advance.
If you run all relevant queries on your local SDK, it should generate all needed indices (in
index.yaml) and the recommended policy is not to editindex.yamlyourself but rather to let the local SDK do it for you. If the SDK is not generating all needed indices, as long of course as you do exercise all relevant code paths in your local testing!, you should open a bug for it in the App Engine tracker here (after checking that there isn’t already a bug report for this problem, of course).