使用 CLI returns 无效 Javascript 对象错误的 AWS CloudSearch 请求

AWS CloudSearch request using CLI returns Invalid Javascript Object error

我正在尝试在 Ubuntu 上使用 AWS CLI 查询我的 AWS Cloudsearch (2013 API) 域。当搜索仅限于特定字段时,我无法让它成功运行。以下查询:

aws --profile myprofile cloudsearchdomain search   
    --endpoint-url "https://search-mydomain-abc123xyz.eu-west-1.cloudsearch.amazonaws.com"  
    --query-options {"fields":["my_field"]}  
    --query-parser "simple"  
    --return "my_field"  
    --search-query "foo bar"

...returns 出现以下错误:

An error occurred (SearchException) when calling the Search operation: q.options contains invalid javascript object

如果我从上面的查询中删除 --query-options 参数,那么它就可以工作了。来自 AWS CLI docs 关于 --query-options 参数的 fields 选项:

An array of the fields to search when no fields are specified in a search... Valid for: simple , structured , lucene , and dismax

aws cli 版本:

aws-cli/1.11.150 Python/2.7.12 Linux/4.10.0-28-generic botocore/1.7.8

我认为文档有点误导,因为 JSon 不喜欢在双引号内嵌入双引号,您需要用单引号替换为

--query-options "{'fields':['my_field']}"

或者你可以转义双引号

--query-options "{\"fields\":[\"my_field\"]}"