4

私は実体を持っています:

Entity e = new Entity("Item");
e.setProperty("Description", Description);

そして、キーワード検索をしようとしています。たとえば、「abc」、「eabcd」、「abc block」がある場合、「abc」を検索すると、3つすべてが返されます。

SQLを使用している場合は、次のように言います。

Select * from Item where Description like "%"+keyword+"%"

私はこれができることを知っていますが、これは「abc」のみを返します。

public static Iterable<Entity> SearchItems(String Description) {
    DatastoreService ds = DatastoreServiceFactory.getDatastoreService();
    Query q = new Query("Item").addFilter("Description",
            FilterOperator.EQUAL, Description);
    return ds.prepare(q).asIterable();
}

私は何をすべきか?

PS私はこれを見ましたが、これは特に役に立ちません。GoogleAppEngineとSQLLIKE

4

1 に答える 1

4

必要なのは全文検索ですが、AppEngineデータストアはそれをサポートしていません。このようなクエリを実行するには、 App EngineSearchAPIを使用する必要があります。

ただし、APIはデータストアへのフルテキストクエリの適用をサポートしていません。データをビルドしてインデックス付きドキュメントに保存する必要があります。データストアにデータを複製して、インデックス付きのドキュメントストレージに再度保存することを検討する必要がある場合があります。

于 2013-03-27T09:32:12.460 に答える