GQL:查找包含子字符串的所有实体

Posted

技术标签:

【中文标题】GQL:查找包含子字符串的所有实体【英文标题】:GQL: Find all entities that contain a substring 【发布时间】:2011-03-11 11:31:37 【问题描述】:

我有一些具有 StringProperty 的实体,我想查询与子字符串匹配的所有实体。有没有办法只使用 GQL 来做到这一点?

例如,如果我的数据存储区如下所示:

ID/Name     question_text
--------------------------------------------------------------
3001        I like to eat chicken.
3020        I only like to eat chicken that is deep fried.
3045        I like filet mignon.
3052        I like cheese.

要查找在 question_text 中包含“鸡”的所有实体,GQL 查询会是什么?

【问题讨论】:

您的答案在this post。 :// 【参考方案1】:

您正在寻找的是对 StringProperty 的全文搜索。这就是 SearchableModel 的创建目的。

基本上,它使用任务队列在您的实体上创建一个新属性,该属性是文本字段中所有字符串(我相信双元组和三元组)的列表。然后通过 SELECT * FROM whatever WHERE 'chicken' IN strings_list 之类的 GQL 查询来搜索“鸡”

【讨论】:

为了澄清,这仅适用于完整的单词,因此根据您的示例数据搜索“chicke”不会返回任何内容。 您能否举一个适用于“chicke”的示例?

以上是关于GQL:查找包含子字符串的所有实体的主要内容,如果未能解决你的问题,请参考以下文章

查找加起来为给定字符串的所有子字符串组合

查找大型数据集中子字符串的所有匹配项的(行、列)位置

批处理:在字符串中查找带引号的子字符串

Leetcode1358_包含所有三种字符的子字符串数目

java 两个字符串,求最长公共子串的长度

js ,怎样输出包含某一子字符串的所有字符串。