Google App Engine Search API 自定义评分

Posted

技术标签:

【中文标题】Google App Engine Search API 自定义评分【英文标题】:Google App Engine Search API custom scoring 【发布时间】:2014-08-07 03:42:27 【问题描述】:

对于一个新项目,我正在比较 ElasticSearch 和 GAE Search API。我需要的是能够处理一些自定义评分功能的自定义评分功能,例如:

降低文档与特定地理点的距离得分(越远,te 得分越低) 基于词频的全文搜索评分 使用“软”过滤器/查询:如果过滤器/查询不匹配,它不会排除文档,而只是降低其分数

这一切都可以通过 ElasticSearch 实现,但我找不到在 GAE Search API 中实现第三点的方法。我也无法弄清楚第一个选项是否仅用作 GAE Search API 中的过滤器,或者它也会更改文档的分数。有人知道这是否可能吗?

【问题讨论】:

我猜在第三点上,您可以搜索始终存在的字段(因此始终在结果中包含该文档),然后额外的搜索命中将导致更高的分数。所以没有实际的搜索命中仍然返回结果? 我们也在尝试弄清楚如何进行软查询。假设查询短语是“显示所有可能的项目”。我们想要返回部分匹配的文档。我们尝试了“(显示所有可能的项目)或(显示项目)或(显示所有项目)”这确实返回结果,但排名并非不直观。我们希望一个完全匹配的词,即所有匹配的词,位于顶部,但事实并非如此。目前尚不清楚我们如何进行排序来实现这一点 他们仍在努力……查看这个问题的答案:“自定义评分是我们最优先的功能请求之一”***.com/questions/20659188/… 另外,您可以尝试使用他们提供的“词干”运算符(搜索词前缀为“~”):developers.google.com/appengine/docs/python/search/… 如果这些是您的起始要求,我会选择弹性搜索。 Search API 既便宜又令人愉悦,但没有很多(很多)您将来可能会使用的高级功能。它不能存储 long,你不能控制它的词干算法,你不能存储 datetime 对象(它们都只充当日期),地理搜索非常有限(并且不能在本地工作),它没有定义一致性行为,它不能是事务性的,并且列表还在继续。这是一个很好的解决方案,可以轻松避免数据存储中的索引爆炸,但它不是弹性搜索。 【参考方案1】:

Custom ranking 现在可以使用 Google 自定义搜索 API。

【讨论】:

以上是关于Google App Engine Search API 自定义评分的主要内容,如果未能解决你的问题,请参考以下文章

在 Google-App-Engine 中使用 HSQLDB

Google Cloud 中的 Google Compute Engine、App Engine 和 Container Engine 有啥区别?

连接 Google App Engine 和 Google Compute Engine

Google App Engine Flexible 和 Google Container Engine 之间的区别?

如何在 Google Cloud App Engine 上使用 PubSub 创建订阅者,该订阅者通过 Publisher 从 Google Cloud App Engine Flex 收听消息?

将 Meteor 部署到 Google App Engine 2017