在全文搜索GAE上更改NamespaceManager

时间:2012-06-13 16:39:34

标签: google-app-engine full-text-search

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

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

这是代码的一部分:

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

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

忽略设置命名空间。

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

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

1 个答案:

答案 0 :(得分:0)

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

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