在全文搜索 GAE 上更改命名空间管理器



我们在 GAE 中有一个应用程序,我们正在重新引擎它以使用全文。我们必须索引 GAE 中已有的所有数据,并且我们的应用程序也使用命名空间。

我们正在尝试创建一个由没有命名空间的管理员运行的 java 过程。在其他服务中,我们创建了类似的 java 过程,逐个代码应用命名空间,因此我们的想法是索引每个命名空间中的所有数据。(我们使用命名空间过滤器来控制用户域。

这是代码的一部分:

private static final Index INDEX = SearchServiceFactory.getSearchService()
  .getIndex(IndexSpec.newBuilder().setName("Actividad"));
NamespaceManager.set("userdomain1");
INDEX.add(doc);

设置命名空间将被忽略。

这是预期的行为吗?有没有另一种方法来索引每个命名空间中的所有信息?

在数据存储上使用类似的代码,它可以正常工作。

SearchService

对象绑定到命名空间,因此您需要在调用 SearchServiceFactory.getSearchService() 之前调用 NamespaceManager.set()。 或者,调用具有命名空间参数的 getSearchService() 版本。看:

https://developers.google.com/appengine/docs/java/javadoc/com/google/appengine/api/search/SearchServiceFactory#getSearchService(java.lang.String)

最新更新