【问题标题】:GAE Search API Now support Partial SearchingGAE 搜索 API 现在支持部分搜索
【发布时间】:2014-02-08 22:05:28
【问题描述】:

自秋季更新以来,GAE 现在支持部分搜索。根据文档:“API 支持对字符串字段进行部分文本匹配”。

对于许多线程来说,这似乎是一个非常受欢迎的请求: Partial matching GAE search API Does GAE Datastore support 'partial text search'?

所以我假设搜索“pyt”现在会返回“python”

有人让这个工作吗?对我不起作用。我很好奇是否需要一些设置,比如用于词干的 ~。

【问题讨论】:

  • 你找到答案了吗?我遇到了同样的问题,一切都设置好了,但只响应完整的匹配。
  • 从未得到回应。我仍然很好奇“部分匹配”对 Google 意味着什么。

标签: python google-app-engine search


【解决方案1】:

https://cloud.google.com/appengine/docs/python/search/中的“API支持对字符串字段进行部分文本匹配”是指by tokens匹配。具体见https://cloud.google.com/appengine/docs/python/search/#Python_Tokenizing_string_fields ...:

字符串被分割成标记,无论是空格还是特殊 字符(标点符号、井号等)出现。该指数将 包括每个令牌的条目。这使您可以搜索 关键字和短语仅包含字段值的一部分。

因此你的假设:

所以我假设搜索“pyt”现在会返回“python”

没有根据 - “部分搜索”是指 文档 的一部分(其文本字段中 tokens 的子集),不是 每个标记的一部分(这会导致组合爆炸,例如单个标记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(Pretty Young Thing)等),后者有 1.8 亿次点击(语言、蛇、喜剧组:-)。

【讨论】:

    猜你喜欢
    • 2017-04-18
    • 2012-10-05
    • 1970-01-01
    • 1970-01-01
    • 2013-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-05
    相关资源
    最近更新 更多