Java ElasticSearch中的解析异常
我正在学习弹性搜索,并尝试根据表中的字段值检索数据 我有一个表(MySQL)“code”,其中有一个字段“code\u group\u id”,表中有现有数据 使用Typescript和Java,我希望检索具有特定代码组id的代码对象列表。我已经用Java准备了以下方法: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
@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,因此出现了解析错误 那么实际的解决方案是什么呢?