简体   繁体   中英

Google App Engine, Java Datastore Query : How to do SQL Like Statement?

I have entity:

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

And I am trying to perform a keyword search. Ex, If i have "abc", "eabcd" and "abc block", when I perform the search "abc", it should return all three.

If I am using SQL, I would say something like this:

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

I know I can do this, but this will only return "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();
}

What should I do?

PS I have seen this but this is not particularly helpful. Google App Engine and SQL LIKE

What you need is a full text search , and App Engine datastore does not support that. You need to use the App Engine Search API to do such queries .

However, the API does not support applying the full text queries to the datastore, you need to build and store your data in indexed documents . You might need to consider duplicating the data in your datastore and store it again in the indexed document storage.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM