我正在使用 RestHighLevelClient,但遇到了一些麻煩。
從前端,我會收到一個這樣的 json 字串:
{"query":{"term":{"something.keyword":"something"}}}
我需要將該字串添加到 SearchRequest 中,或者更好的是,從上面的 json 創建一個 SearchRequest
如何在不創建決議器并以編程方式創建要添加到 searchRequest 的 QueryBuilder 的情況下執行此操作?
編輯:我已經嘗試過包裝查詢,但是執行這個查詢:
{
"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:
對不起,包裝器作業得很好!我不得不從字串中洗掉“查詢”,這是我的錯。
uj5u.com熱心網友回復:
正如 Val 所建議的,您可以這樣撰寫 SearchRequest:
SearchRequest searchRequest = new SearchRequest("indexName);
SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder().query(QueryBuilders.wrapperQuery("your json goes here"));
searchRequest.source(searchSourceBuilder);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/363492.html
