首页 > 解决方案 > 使用 PHP API 的 AWS Amazon Cloud Search 表达式定义

问题描述

我在通过官方 AWS Cloud Search API 进行表达式定义时遇到了一些问题。

文档中的代码示例被破坏了,实际上并没有显示 API 的实际期望:

https://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.CloudSearchDomain.CloudSearchDomainClient.html#_search

标签: amazon-web-servicesamazon-cloudsearch

解决方案


经过大量实验,我找到了通过 PHP API 定义表达式的正确格式。

希望这可以节省其他人一些时间。

因此,用于表达式编写的通用 AWS Cloud Search 文档将显示如下内容:

expr.score_by_date=_score*(_time - publish_date)

然后您在这样的搜索中使用它:

search?q=terminator& expr.score_by_date=_score*(_time - publish_date)&sort=score_by_date desc

但在 API 中,您需要将其定义为传递给 CloudSearchDomainClient 类中的搜索方法的参数。

$search_args是搜索方法接受的各种参数的数组。

$search_args['expr'] = '{score_by_date: "_score*(_time - post_date)"}';

然后,您修改排序参数以匹配如下:

$search_args['sort'] = 'score_by_date desc';

推荐阅读