Ensemble chaîne json requête personnalisée à un élastique, la demande de recherche, java RestHighLevelClient

0

La question

Je suis à l'aide de la RestHighLevelClient et je suis confronté à quelques difficultés.

De front-end, je vais recevoir une Chaîne json comme ça:

{"query":{"term":{"something.keyword":"something"}}} 

et je dois ajouter que la Chaîne SearchRequest ou, mieux, de créer un SearchRequest du json ci-dessus

Comment puis-je le faire sans la création d'un analyseur et de créer par programmation le QueryBuilder à ajouter à la searchRequest?

EDIT: J'ai déjà essayé le wrapper de la requête, mais l'exécution de cette requête:

{
  "query": {
    "wrapper": {
      "query": "eyJxdWVyeSI6eyJ0ZXJtIjp7ImV2ZW50LmtpbmQua2V5d29yZCI6ImV2ZW50In19fSA="
    }
  }
}

J'ai cette réponse:

{
  "error" : {
    "root_cause" : [
      {
        "type" : "parsing_exception",
        "reason" : "unknown query [query]",
        "line" : 1,
        "col" : 10
      }
    ],
    "type" : "parsing_exception",
    "reason" : "unknown query [query]",
    "line" : 1,
    "col" : 10,
    "caused_by" : {
      "type" : "named_object_not_found_exception",
      "reason" : "[1:10] unknown field [query]"
    }
  },
  "status" : 400
}

EDIT 2:

Désolé, le wrapper fonctionne parfaitement! J'ai dû enlever la "requête" de la chaîne, de ma faute.

elasticsearch java
2021-11-22 13:45:41
1

La meilleure réponse

1

Comme Val suggéré, vous pouvez écrire le SearchRequest de cette façon:

SearchRequest searchRequest = new SearchRequest("indexName");
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(QueryBuilders.wrapperQuery("your json goes here"));
searchRequest.source(searchSourceBuilder);
2021-11-23 12:40:25

Avec wrapper j'ai quelques erreurs: la requête: String query = "{\"recherche\":{\"terme\":{\"quelque chose.genre.keyword\":\"quelque chose\"}}} réponse: { "error" : { "root_cause" : [ { "type" : "parsing_exception", "raison" : "l'inconnue de la requête [requête]", "ligne" : 1, "col" : 10 } ], "type" : "parsing_exception", "raison" : "l'inconnue de la requête [requête]", "ligne" : 1, "col" : 10, "caused_by" : { "type" : "named_object_not_found_exception", "raison" : "[1:10] champ inconnu [requête]" } }, "statut" : 400 }
Pikappa

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................