web-dev-qa-db-fra.com

Comment envoyer une demande de recherche multiple elasticsearch dans Postman?

J'essaie d'envoyer une demande de recherche multiple elasticserach via un facteur comme ci-dessous:

POST - http://localhost:9200/_msearch
content-type : x-www-form-urlencoded
body:
{"index":"accounts"}
{"query":{"bool":{"should":[{"match":{"owner.first_name":"Creeple"}}]}}}

Cependant, j'obtiens l'erreur suivante:

{
  "error": {
    "root_cause": [
      {
        "type": "parse_exception",
        "reason": "Failed to derive xcontent"
      }
    ],
    "type": "parse_exception",
    "reason": "Failed to derive xcontent"
  },
  "status": 400
}

Notez que si j'effectue la même demande via mon code de lecture, les résultats sont récupérés avec succès.

WS.url("localhost:9200/_msearch").withHeaders("Content-type" -> "application/x-www-form-urlencoded").post(query)
14
Ra Ka

Trois choses sont importantes ici:

  1. Lors de l'insertion du corps, sélectionnez radiobutton brut et Texte (ou JSON) dans menu déroulant.
  2. Ajouter un en-tête: Type de contenu: application/x-ndjson
  3. Le plus important: mettez nouvelle ligne après la dernière ligne de votre requête

Corps: enter image description here

En-tête:

enter image description here

Version Curl:

curl -X POST \
  http://127.0.0.1:9200/_msearch \
  -H 'cache-control: no-cache' \
  -H 'content-type: application/x-ndjson' \
  -d '{"index":"script","type":"test"}
{"query":{"match_all":{}}}
'
24
Joanna

Vous pouvez également faire en sorte que votre corps de demande soit au format json et changer votre type de contenu en application/json, veuillez jeter un œil comme ci-dessous

Header with Content-Type

Your search request with json type

Response data

3
Peter.Chu