Установите пользовательский запрос строки json в эластичный поисковый запрос, java RestHighLevelClient

0

Вопрос

Я использую RestHighLevelClient и столкнулся с некоторыми проблемами.

С переднего конца я получу такую строку json:

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

и мне нужно добавить эту строку в запрос на поиск или, лучше, создать запрос на поиск из json выше

Как я могу это сделать, не создавая синтаксический анализатор и не создавая программно конструктор запросов для добавления в запрос поиска?

Редактировать: Я уже пробовал запрос-оболочку, но выполнил этот запрос:

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

У меня есть такой ответ:

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

ПРАВКА 2:

Извините, обертка работает просто идеально! Мне пришлось удалить "запрос" из строки, по моей вине.

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

Лучший ответ

1

Как предложил Вэл, вы можете написать запрос на поиск таким образом:

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

С оболочкой у меня есть некоторые ошибки: запрос: Строковый запрос = "{\"запрос\":{\"термин\":{\"что-то.вид.сайта\":\"нечто\"}}} " ответ: { "ошибка" : { "root_cause" : [ { "тип" : "parsing_exception", "причина" : "неизвестный запрос [запрос]", "линия" : 1, "коль" : 10 } ], "Тип" : "parsing_exception", "причина" : "неизвестный запрос [запрос]", "линия" : 1, "коль" : 10, "caused_by" : { "тип" : "named_object_not_found_exception", "Причина" : "[1:10] неизвестные поля [запрос]" } }, "статус" : 400 }
Pikappa

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................