Google App EngineでObjectifyを使用してデータストアをクエリすると、次のようなクエリを使用したいと思います。
objectifyService.query(Entity.class).filter("name contains", a);
それらの名前に "a"カーナントを含むすべてのエンティティを含むリストを返します。しかし、contains演算子は存在しません。
それを行う簡単な方法はありますか?
回答:
回答№1は2単純化されたネームフィールドを検索したい部分に分割し、それらをインデックス付きのプロパティとして保存することで、フルテキスト検索サービスを提供します。 Luceneのアナライザを使って、フィールドをトークン化して枝打ちすることさえできます。
これは、データストアを操作するときに多く発生します。必要な操作を実行するクエリ演算子がない場合は、クエリが同等のテストになるように関連するデータを事前に索引付けします。
または、FTSサービスを使用します。
回答№2の場合は0
回答は「演算子は存在しません」 - Googleデータストアはこのタイプのフィルタをサポートしていません。検索するには、検索エンジンを使用する必要があります: https://cloud.google.com/appengine/docs/java/search/