【问题标题】:Google App Engine, Java Datastore Query : How to do SQL Like Statement?Google App Engine,Java Datastore 查询:如何执行 SQL Like 语句?
【发布时间】:2013-03-17 07:01:39
【问题描述】:

我有实体:

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();
}

我该怎么办?

附:我已经看到了,但这并不是特别有用。 Google App Engine and SQL LIKE

【问题讨论】:

    标签: java google-app-engine


    【解决方案1】:

    您需要的是 full text search,而 App Engine 数据存储区不支持。您需要使用App Engine Search API 来执行such queries

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

    【讨论】:

    • 有趣。感谢你的回复!我希望他们最终会实现一个“喜欢”搜索功能,因为这对于这么多功能来说非常重要。 (特别是对于我们这些刚接触 GAE 并且习惯于在 SQL 中进行搜索的人。)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 1970-01-01
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    相关资源
    最近更新 更多