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

时间:2017-09-16 14:13:16

标签: amazon-web-services aws-cli amazon-cloudsearch

我正在尝试使用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"

...返回以下错误:

  

调用搜索操作时发生错误(SearchException):q.options包含无效的javascript对象

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

  

在搜索中未指定字段时要搜索的字段数组...适用于:simple,structured,lucene和dismax

aws cli版本:

  

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

1 个答案:

答案 0 :(得分:2)

我认为文档有点误导,因为JSon不喜欢双引号中的嵌入式双引号,你需要用单引号代替

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

或者你可以逃避双引号

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