Set json string query personalizat cu un elastic cerere de căutare, java RestHighLevelClient

0

Problema

Eu sunt, folosind RestHighLevelClient si eu ma confrunt cu unele probleme.

De la front-end, voi primi un json String de genul asta:

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

și trebuie să adaug că un Șir de o SearchRequest sau, mai bine, de a crea un SearchRequest de la json de mai sus

Cum pot face asta fără a crea un parser și de a crea programatic QueryBuilder pentru a adăuga la searchRequest?

EDIT: Am încercat deja înveliș de interogare, dar de executare interogare:

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

Am acest răspuns:

{
  "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:

Ne pare rău, înveliș funcționează perfect! Am avut pentru a elimina "interogare" din șir, vina mea.

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

Cel mai bun răspuns

1

Ca Val sugerat, puteți scrie SearchRequest acest fel:

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

Cu înveliș am unele erori: interogare: String query = "{\"interogare\":{\"termenul de\":{\"ceva.fel.cuvinte cheie\":\"ceva\"}}} " răspuns: { "eroare" : { "root_cause" : [ { "type" : "parsing_exception", "motiv" : "necunoscut interogarea [interogare]", "linie" : 1, "col" : 10 } ], "tip" : "parsing_exception", "motiv" : "necunoscut interogarea [interogare]", "linie" : 1, "col" : 10, "caused_by" : { "type" : "named_object_not_found_exception", "motiv" : "[1:10] necunoscut [interogare]" } }, "stare" : 400 }
Pikappa

În alte limbi

Această pagină este în alte limbi

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