elasticsearch,jhipster,Java,Typescript,elasticsearch,Jhipster" /> elasticsearch,jhipster,Java,Typescript,elasticsearch,Jhipster" />

Java ElasticSearch中的解析异常

Java ElasticSearch中的解析异常,java,typescript,elasticsearch,jhipster,Java,Typescript,elasticsearch,Jhipster,我正在学习弹性搜索,并尝试根据表中的字段值检索数据 我有一个表(MySQL)“code”,其中有一个字段“code\u group\u id”,表中有现有数据 使用Typescript和Java,我希望检索具有特定代码组id的代码对象列表。我已经用Java准备了以下方法: @GetMapping("/_search/codes") @Timed public ResponseEntity<List<CodeDTO>> searchCodes(@RequestParam S

我正在学习弹性搜索,并尝试根据表中的字段值检索数据

我有一个表(MySQL)“code”,其中有一个字段“code\u group\u id”,表中有现有数据

使用Typescript和Java,我希望检索具有特定代码组id的代码对象列表。我已经用Java准备了以下方法:

@GetMapping("/_search/codes")
@Timed
public ResponseEntity<List<CodeDTO>> searchCodes(@RequestParam String query, Pageable pageable) {
    log.debug("REST request to search for a page of Codes for query {}", query);
    Page<CodeDTO> page = codeService.search(query, pageable);
    HttpHeaders headers = PaginationUtil.generateSearchPaginationHttpHeaders(query, page, "/api/_search/codes");
    return new ResponseEntity<>(page.getContent(), headers, HttpStatus.OK);
}

@GetMapping("/codes/currencies")
@Timed
public ResponseEntity<List<CodeDTO>> getAllByCodeGroupId(Pageable pageable) {
    QueryBuilder qb = QueryBuilders.termQuery("codeGroupId", 3);

    return searchCodes(qb.toString(), pageable);
}
@GetMapping(“/\u搜索/代码”)
@定时
公共响应搜索代码(@RequestParam字符串查询,可分页){
debug(“REST请求为查询{}搜索一页代码”,查询);
Page=codeService.search(查询,可分页);
HttpHeaders headers=PaginationUtil.generateSearchPaginationHttpHeaders(查询,第页,“/api/_搜索/代码”);
返回新的响应属性(page.getContent(),headers,HttpStatus.OK);
}
@GetMapping(“/代码/货币”)
@定时
公共响应getAllByCodeGroupId(可分页可分页){
QueryBuilder qb=QueryBuilders.termQuery(“codeGroupId”,3);
返回搜索代码(qb.toString(),可分页);
}
根据ES文档,这里的术语查询应该是正确的选择,因为我正在寻找一个特定的查询术语,因此应该返回一个包含所有“代码”记录的响应体,这些记录的代码组id=3

但是,当我在REST API上测试GET命令时,会出现以下异常:

2018-04-21 21:32:47.024 ERROR 14961 --- [ XNIO-59 task-5] 
c.i.s.aop.logging.LoggingAspect          : Exception in     ch.ice.swingkasso.service.impl.CodeServiceImpl.search() with cause =     '[code] QueryParsingException[Failed to parse query [{
  "term" : {
    "codeGroupId" : 3
  }
}]]; nested: ParseException[Cannot parse '{
  "term" : {
    "codeGroupId" : 3
  }
}': Encountered " <RANGE_GOOP> "{\n "" at line 1, column 13.
Was expecting one of:
    "]" ...
    "}" ...
    ]; nested: ParseException[Encountered " <RANGE_GOOP> "{\n "" at     line 1, column 13.
Was expecting one of:
    "]" ...
    "}" ...
    ];' and exception = 'all shards failed'

Caused by: org.elasticsearch.index.query.QueryParsingException: Failed to parse query [{
  "term" : {
    "codeGroupId" : 3
  }
}]
2018-04-21:32:47.024错误14961---[XNIO-59任务-5]
c、 i.s.aop.logging.LoggingAspect:ch.ice.SwingCasso.service.impl.CodeServiceImpl.search()中的异常,原因为“[code]QueryParsingException[未能分析查询[{
“期限”:{
“代码组ID”:3
}
}]]; 嵌套:ParseException[无法分析'{
“期限”:{
“代码组ID”:3
}
}“:在第1行第13列遇到“{\n”。
我期待的是:
"]" ...
"}" ...
]; 嵌套:ParseException[在第1行第13列遇到“{\n”。
我期待的是:
"]" ...
"}" ...
];' 和异常='all shard failed'
原因:org.elasticsearch.index.query.QueryParsingException:无法分析查询[{
“期限”:{
“代码组ID”:3
}
}]

我是否忽略了一些简单的事情?谢谢你对这件事的指点

找到了解决办法。问题是搜索方法将查询重新转换为QueryStringQuery,因此出现了解析错误

那么实际的解决方案是什么呢?