 <p>s1) Yes, you can set certain properties as being indexed. Some property types do not allow indexing at all. It's preferable to set the indexes programmatically within each model definition.</p> <p>2) Although you can drop the index programmatically (i.e. remove indexed=True), I would not recommend it. It will leave your data store in inconsistent state.</p> <p>3) It's not possible to set index on a structured property, however, you can set a Key relationship between your model and the models in the structured property.</p> <p>See: </p> <ul> <li><p><a href="https://developers.google.com/appengine/docs/python/ndb/entities" rel="nofollow">https://developers.google.com/appengine/docs/python/ndb/entities</a></p></li> <li><p><a href="https://developers.google.com/appengine/docs/python/ndb/properties" rel="nofollow">https://developers.google.com/appengine/docs/python/ndb/properties</a> </p></li> </ul> <blockquote> <p>"You can specify the usual property options for structured properties (except indexed)."</p> </blockquote>