0

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

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

这是代码的一部分:

private static final Index INDEX = SearchServiceFactory.getSearchService()
  .getIndex(IndexSpec.newBuilder().setName("Actividad"));

NamespaceManager.set("userdomain1");
INDEX.add(doc);

设置命名空间被忽略。

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

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

4

1 回答 1

0

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

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

于 2012-06-13T20:39:45.977 回答