Google app engine google应用程序引擎上的子字符串类型文本搜索
我看到google app engine现在添加了文本搜索: 这是否包括在字符串中搜索子字符串 我问这个问题的原因是因为我以前写过一些代码,允许子字符串搜索诸如姓名和电话号码之类的字段。例如,您可以搜索“San”,它会找到类似“Mike DaSantos”的结果。这对于像auto complete这样的东西来说太棒了 但是,由于这需要大量的写操作,我在成本方面遇到了问题。我这样做的每个字段大约需要O((n*n+1)/2)写操作,因为它涉及到字符串中每个字母子集的写操作。当涉及到为6000名客户的电话号码、姓名、电子邮件地址和地址编制索引时,这增加了几美元的应用程序引擎成本 我想知道使用搜索API是否可以以更低的成本提供此功能 非常感谢 没有 我们可以搜索的唯一“通配符”是复数Google app engine google应用程序引擎上的子字符串类型文本搜索,google-app-engine,full-text-search,Google App Engine,Full Text Search,我看到google app engine现在添加了文本搜索: 这是否包括在字符串中搜索子字符串 我问这个问题的原因是因为我以前写过一些代码,允许子字符串搜索诸如姓名和电话号码之类的字段。例如,您可以搜索“San”,它会找到类似“Mike DaSantos”的结果。这对于像auto complete这样的东西来说太棒了 但是,由于这需要大量的写操作,我在成本方面遇到了问题。我这样做的每个字段大约需要O((n*n+1)/2)写操作,因为它涉及到字符串中每个字母子集的写操作。当涉及到为6000名客户的
~"car" # searches for "car" and "cars"
但它可以做的是在同一字段中保存多个令牌。请参见他们的示例
例如,您可以查询一个“nametag”字段,并假设您将该名称标记到该字段中,则返回“Mike DaSantos”
Results=getIndex().search(“nametag:San”);
我不清楚这里的成本和配额。顺便说一句,您不需要为自己的子字符串搜索解决方案编写O((n*n+1)/2)写操作 你应该只需要1个 也就是说,不是创建O((n*n+1)/2)个对象,而是在ndb.StringProperty(repeated=True)中创建一个具有O((n*n+1)/2)个列表元素的对象
StringTokenizer tokenizer = new StringTokenizer(tagStr, ",");
while (tokenizer.hasMoreTokens()) {
docBuilder.addField(Field.newBuilder().setName("tag")
.setAtom(tokenizer.nextToken()));
}
Results<ScoredDocument> results = getIndex().search("nametag:San");