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 に答える