设置json串的定义查询到一个弹性的搜索请求,java RestHighLevelClient

0

的问题

我使用的RestHighLevelClient和我面对一些麻烦。

从前结束,我将收到一json串这样的:

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

我需要添加这串到SearchRequest或者更好,创造一个SearchRequest从id上

我怎么可以这样做,而不创建一个分析程序和创建的编程方式查询添加到searchRequest?

编辑: 我已经试图包装查询,但是执行这种查询:

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

对不起,包装工作的完美! 我已经删除了"查询"从string,我的错。

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

最好的答案

1

作为Val建议,可以编写的SearchRequest这种方式:

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

有包装纸我有一些错误:查询:String query="{\"查询\":{\"一词\":{\"的东西。那种。关键字\":\"的东西\"}}}"response:{的"错误":{"root_cause":[{"类型":"parsing_exception","原因":"未知的查询[query]","线":1,"坳":10}]、"类型":"parsing_exception","原因":"未知的查询[query]","线":1,"坳":10,"caused_by": {"类型":"named_object_not_found_exception","原因":"[1:10]未知的领域[query]"}},"状态":400}
Pikappa

其他语言

此页面有其他语言版本

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