如何在Appengine中删除或重置搜索索引

Dav*_*gué 5 python google-app-engine full-text-search

情况

好吧,所以我们的应用程序在appengine中激活全文搜索.我们在文档上设置了索引,其中包含名为"date"的字段.这个字段是一个DateField,现在我们改变了文档的模型,所以字段'date'现在是一个NumericField.

问题是,在生产服务器上,即使我从索引中清除了所有文档,服务器也会响应此类错误:无法解析搜索请求""; SortSpec数字默认值与'date'中的表达式类型'TEXT'不匹配

解决方案

问题是,"我认为",服务器上的模型不适合搜索查询的模型.基本上,一种方法是删除整个索引,但我不知道如何在生产服务器上执行此操作.

开发服务器完美无缺

Hal*_*own 7

如果清空索引并调用index.delete_schema()(index.deleteSchema()在Java中)它将清除我们从字段名称到类型的映射,并且您可以按预期索引新文档.谢谢!

  • 在SDK 1.8.5中,delete_schema给出了一个RuntimeError:CallNotFoundError('search.DeleteSchema不存在',) (3认同)