4

我使用Android Studio創建了Android項目及其後端AppEngine端點對應項。我有一個我正在使用Objectify的數據存儲。該系統運行良好,直到我添加了一個過濾器到我的查詢(僅顯示特定的給定電子郵件)。在基於Android-Studio的項目中爲AppEngine創建綜合索引

​​

這是POJO數據存儲實體:

@Entity 
public class Report { 
    @Id 
    Long id; 

    String who; 

    @Index 
    Date when; 

    String what; 

    @Index 
    String email; 
} 

但是,我從谷歌API瀏覽器收到這樣的錯誤,當我試圖對它進行測試:

com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. 
The suggested index for this query is: 
    <datastore-index kind=\"AccessReport\" ancestor=\"false\" source=\"manual\"> 
    <property name=\"email\" direction=\"asc\"/> 
    <property name=\"when\" direction=\"desc\"/> 
    </datastore-index> 

據我瞭解它,我只需要創建一個複合索引,包括特定領域的電子郵件和時間,與他們的具體排序方向。

但是,我發現大多數文檔告訴我要編輯datastore-indexes.xml

App Engine預定義實體的每個屬性的簡單索引。 App Engine應用程序可以在名爲datastore-indexes.xml的索引 中定義更多定製索引,該文件在 應用程序的/ war/WEB-INF/appengine生成的目錄中生成。

不幸的是,這個文件似乎並沒有存在於我的項目中的任何地方。

是否有人熟悉在使用Android Studio時如何更改此方法?

回答

6

創建datastore-indexes.xml文件並將其放入/WEB-INF/文件夾中。內容將如下所示:

<datastore-indexes 
    autoGenerate="true"> 

    <datastore-index kind=\"AccessReport\" ancestor=\"false\" source=\"manual\"> 
     <property name=\"email\" direction=\"asc\"/> 
     <property name=\"when\" direction=\"desc\"/> 
    </datastore-index> 
</datastore-indexes> 
+0

Android Studio項目應該在哪裏創建? – Knossos

+0

您的後端模塊應該有一個'WEB-INF'文件夾。這個文件在那裏。 –

+0

太棒了,我會給你一看 – Knossos