如何使用JPA和LIKE对Google AppEngine数据存储区执行全文搜索?我尝试了以下但是它出错了。
引起:com.google.appengine.datanucleus.query.DatastoreQuery $ UnsupportedDatastoreFeatureException:查询
<SELECT s FROM Study s WHERE description like :desc>
出现问题:通配符必须出现在表达式字符串的末尾(仅支持前缀匹配)
TypedQuery<Study> tq = emf.createQuery(query, Study.class);
if (hasKeywords) tq.setParameter("desc", "%" + keywords + "%");
我尝试删除第一个%
,但它确实有效。但这并不是很有用。 description字段是一个字符串,而不是blob。
应用服务引擎的API-1.0-SDK-1.8.6.jar
答案 0 :(得分:1)
这是一个已知的限制。您想要做的是使用他们的Search APIs进行全文搜索。
您可以编写实体修改侦听器,每次修改实体时都会更新搜索索引。然后,此侦听器可以对将更新搜索索引的作业(通过task queues)进行排队。
现在,在显示搜索框的屏幕中,您可以使用搜索API来获取结果。
...
或者,另一种方法是使用仅前缀搜索查询。