2013-08-28 34 views
0

在我的GAE Datastore的我有「人」實體名字,姓氏和國家GAE - 爪哇 - 做一個查詢過濾器「LIKE」

我需要做一個查詢像 "SELECT * FROM Country WHERE name LIKE '%spa%'"

最好的方法

This answer提供了這樣一個解決方案:

Query query = new Query("Person"); 
query.addFilter("name", FilterOperator.GREATER_THAN_OR_EQUAL, "pe"); 
query.addFilter("name", FilterOperator.LESS_THAN, "pe"+ "\uFFFD"); 

但我沒有任何成功,始終返回0,結果......我失去了一些東西?

看來,另一種替代方法是使用「Search API」,但...我如何將我的數據存儲中的「人員」的所有數據遷移到新的Document中以執行搜索?

任何解決方案?

謝謝

回答

1

答案與您的問題不一樣。他們提供的查詢是前綴查詢:即「pe」開頭的所有名稱。您似乎想要在任何地方查詢包含「pe」的所有名稱,但由於在該問題的接受答案中解釋的原因是不可能的。

Search API確實是這樣做的答案,並且如何創建文檔以表示數據存儲對象的詳細信息包含在您發佈的鏈接中。 (請注意,這不是遷移:您的數據應該保留在數據存儲區中,Search API是一個單獨的系統,僅用於全文搜索。)