2012-08-13 82 views
1

我正在爲應用程序(內部作業門戶)使用數據存儲低級別API。 我有一個名爲候選人實體與下列屬性如何在Google數據存儲中有效地搜索實體

Entity cadidate=new Entity("Candidate",getEmpNum()); 
    candidate.setProperty("name","some name"); 
    candidate.setProperty("skill","c++,Java,C#,GAE"); 
    candiate.setProperty("empNum"); 

屬性的技能'取一個逗號分隔字符串。如果人力資源部門使用密鑰 「GAE,Java」搜索候選人,我如何有效地搜索實體? 下面的查詢會起作用嗎?

q.addFilter(searchBy, FilterOperator.GREATER_THAN_OR_EQUAL, searchFor); 
    q.addFilter(searchBy, Query.FilterOperator.LESS_THAN, searchFor+"Z"); 

如果上面的查詢工作的發言權1000個實體..does它具有相同的延遲工作時,有50,000以上的實體在數據存儲?

請給我建議。我是新來的GAE和數據存儲

-Thanks 馬

回答

3

您應該使用列表屬性。

List<String> skills = Arrays.asList("c++", "Java", "C#", "GAE"); 
candidate.setProperty("skill", skills); 

然後用IN運營商查詢:

List<String> findSkills = Arrays.asList("Java","GAE"); 
q.addFilter("skill", FilterOperator.IN, findSkills); 

相關問題