4

我有实体:

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

我正在尝试执行关键字搜索。例如,如果我有“abc”、“eabcd”和“abc block”,当我执行搜索“abc”时,它应该返回所有三个。

如果我使用 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我已经看到了,但这并不是特别有用。Google App Engine 和 SQL LIKE

4

1 回答 1

4

您需要的是全文搜索,而 App Engine 数据存储区不支持。您需要使用App Engine Search API来执行此类查询

但是,API 不支持将全文查询应用到数据存储区,您需要在索引文档中构建和存储数据。您可能需要考虑复制数据存储中的数据并将其再次存储在索引文档存储中。

于 2013-03-27T09:32:12.460 回答