データストアに対して部分一致(SQLのLIKEみたいな)検索をかける方法はないかと探してみたところSlim3 DatastoreのDatastore.filterInMemory()を使って、条件をmeta.{value}.contains(String)でやるのが唯一の手段っぽい。けどこの方法はデータストアに高い負荷がかかるので、検索フォームなどで利用する以外は、使用しないほうがいいと思う。

String search = "test";
EntityMeta meta = new EntityMeta();
List<Entity> list = Datastore.query(meta).filterInMemory(meta.title.contains(search)).asList();

関連性がある記事

Disqusでコメント