问题描述
我在通过官方 AWS Cloud Search API 进行表达式定义时遇到了一些问题。
文档中的代码示例被破坏,实际上并未显示 API 实际期望的内容:
解决方法
经过多次试验,我找到了通过 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';