自秋季更新以来,GAE现在支持部分搜索。根据文档:“API支持对字符串字段进行部分文本匹配”。
这似乎是一个非常受欢迎的请求,每个线程: Partial matching GAE search API Does GAE Datastore support 'partial text search'?
所以我假设搜索'pyt'现在会返回'python'
有没有人让这个工作?对我不起作用。我很好奇是否需要一些设置,比如〜用于阻止。
答案 0 :(得分:4)
" API支持对字符串字段进行部分文本匹配"在https://cloud.google.com/appengine/docs/python/search/中,指的是匹配的令牌。具体来说,请参阅https://cloud.google.com/appengine/docs/python/search/#Python_Tokenizing_string_fields ...:
字符串在空格或特殊处分割成标记 出现字符(标点符号,哈希符号等)。该指数将 包括每个令牌的条目。这使您可以搜索 关键字和短语仅包含字段值的一部分。
因此你的假设是:
所以我会假设搜索' pyt'现在会返回' python'
没有根据 - "部分搜索"表示文档的一部分(令牌的一个子集在其文本字段中),不部分每个令牌(这会导致组合爆炸,例如单个标记python
必须被编入索引作为每个条目:
p
py
pyt
pyth
pytho
python
y
yt
yth
ytho
ython
t
th
tho
thon
h
ho
hon
o
on
n
如果您想要那么,编写自己的代码以产生爆炸就很容易了(从真实的起始文档中生成包含所有这些子字符串的伪文档) - 但是,对于任何非平凡的起始文件,您可能很容易最终支付一笔荒谬的资源,或达到绝对最大配额的硬上限。
提示:如果您在" pyt"上进行网络搜索,您是否找到包含" python"的文档?尝试 - 前者提供1000万次点击(半岛青年剧院,迈克尔杰克逊的PYT(年轻的东西)等),后者,1.8亿次点击(语言,蛇,喜剧组:-)