2015-09-08 3 views
1

J'ai une requête que je suis en passant par la ligne de commande:AWS CloudSearch CLI avec --query-options lancer erreur

aws cloudsearchdomain --endpoint-url http://myendpt search --search-query value --return _all_fields --cursor initial --size 100 --query-options {"defaultOperator":"or","fields":["id"],"operators":["and","escape","fuzzy","near","not","or","phrase","precedence","prefix","whitespace"]} --query-parser simple --query-parser simple --profile myname 

Il répond par:

Unknown options: operators:[and, escape, fuzzy, near, not, or, phrase, precedence, prefix, whitespace], fields:[id] 

Je vous assure que id champ existe en AWS Cloudsearch. J'ai inversé la requête dans le testeur de requêtes cloudearch en ligne vers AWS CLI.

Aidez-nous s'il vous plaît.

Mise à jour:

Ce problème a été résolu dans la mise à jour aws-cli/1.8.4. Si vous êtes un utilisateur ubuntu/linux comme moi:

s'il vous plaît faire:

sudo pip uninstall awscli 
sudo pip install awscli 
aws --version 
+0

Voulez-vous essayer un exemple minimal, à partir avec seulement un terme de requête, puis en ajoutant «champs» ou «opérateurs»? Il est plus facile de déboguer sans toutes les options supplémentaires et superflues. – alexroussos

+0

Et pour m'éviter d'avoir à chercher à nouveau quand je reviens sur cette question, ce sont les documents pertinents: http://docs.aws.amazon.com/cli/latest/reference/cloudsearchdomain/search.html – alexroussos

+0

aws cloudearchdomain - -endpoint-url http: // recherche myendpt --search-requête valeur --return _all_fields --cursor initial --size 100 --query-parser simple --query-parser simple --profile myname Cela fonctionne mais peu importe J'ajoute après --query-options renvoie la même erreur d'options Unknow. – darthsidious

Répondre

1

Résumer la solution du Asker des commentaires: la question est que vous devez double guillemet votre JSON param, puis soit simple quote (') ou échappé-double-citation (\") la clé json/valeurs dans votre param.

Par exemple, les deux sont valables

--query-options "{'defaultOperator':'and','fields':['name']}" 

ou

--query-options "{\"defaultOperator\":\"and\",\"fields\":[\"name\"]}" 
+0

Merci pour votre aide @alexroussos – darthsidious

2

La solution pour ma mise en œuvre rubis du aws-sdk, ver > 2

client = Aws::CloudSearchDomain::Client.new(endpoint:'http://yoururl') 
    resp = client.search({ 
          cursor:"initial", 
          facet:"{\"facet_name_!\":{},\"mentions\":{}}", 
          query:"#{place_a_value_here}", 
          query_options:"{\"defaultOperator\":\"or\",\"fields\":[\"yourfield\"],\"operators\":[\"and\",\"escape\",\"fuzzy\",\"near\",\"not\",\"or\",\"phrase\",\"precedence\",\"prefix\",\"whitespace\"]}", 
          query_parser:"simple", 
          return:"_all_fields", 
          size:1000, 
          highlight:"{\"text\":{}}", 
         })