我们在 GAE 中有一个应用程序,我们正在重新引擎它以使用全文。我们必须索引 GAE 中已有的所有数据,并且我们的应用程序也使用命名空间。
我们正在尝试创建一个由没有命名空间的管理员运行的 java 过程。在其他服务中,我们创建了类似的 java 过程,逐个代码应用命名空间,因此我们的想法是索引每个命名空间中的所有数据。(我们使用命名空间过滤器来控制用户域。
这是代码的一部分:
private static final Index INDEX = SearchServiceFactory.getSearchService()
.getIndex(IndexSpec.newBuilder().setName("Actividad"));
NamespaceManager.set("userdomain1");
INDEX.add(doc);
设置命名空间将被忽略。
这是预期的行为吗?有没有另一种方法来索引每个命名空间中的所有信息?
在数据存储上使用类似的代码,它可以正常工作。
对象绑定到命名空间,因此您需要在调用 SearchServiceFactory.getSearchService() 之前调用 NamespaceManager.set()。 或者,调用具有命名空间参数的 getSearchService() 版本。看:
https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/search/SearchServiceFactory#getSearchService(java.lang.String)