(08)boot2.0整合es6.0增加更新修改删除操作

@Controller

@ResponseBody

public class CurdController {

@Autowired

private TransportClient client;

 

/**

* 根据id查询接口

*

* @param id

* @return

*/

@RequestMapping("getInfoById/{id}")

public ResponseEntity getInfoById(@PathVariable String id) {

GetResponse documentFields = client.prepareGet("people", "_doc", id).get();

System.out.println(documentFields);

if (!documentFields.isExists()) {

return new ResponseEntity(HttpStatus.NOT_FOUND);

}

return new ResponseEntity(documentFields.getSource(), HttpStatus.OK);

}

 

/**

* 增加接口

*

* @param id

* @param name

* @param age

* @param date

* @return

*/

@RequestMapping("addInfo")

public ResponseEntity addInfo(

@RequestParam(name = "id") Long id,

@RequestParam(name = "name") String name,

@RequestParam(name = "age") Integer age,

@RequestParam(name = "date")

String date) {

try {

//也可以用StringBuilder

XContentBuilder builder = XContentFactory.jsonBuilder()

.startObject()

.field("id", id)

.field("name", name)

.field("age", age)

.field("date", date).endObject();

IndexResponse response = client.prepareIndex("people2", "_doc").setSource(builder).get();

return new ResponseEntity(response.getId(), HttpStatus.OK);

} catch (Exception e) {

e.printStackTrace();

return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);

}

 

}

 

/**

* 根据id删除接口

*

* @param id

* @return

*/

@RequestMapping("deleteById/{id}")

public ResponseEntity deleteById(@PathVariable(name = "id") String id) {

DeleteResponse deleteResponse = client.prepareDelete("people2", "_doc", id).get();

 

return new ResponseEntity(deleteResponse.getResult().toString(), HttpStatus.OK);

}

 

/**

* 根据id更新接口

*

* @param id

* @param age

* @param name

* @param date

* @return

*/

@PutMapping("updateById/{id}")

public ResponseEntity updateById(@PathVariable(name = "id") String id, @RequestParam(name = "age") Integer age, @RequestParam(name = "name") String name, @RequestParam(name = "date") String date) {

 

try {

UpdateRequest updateRequest = new UpdateRequest("people2", "_doc", id);

 

XContentBuilder field = XContentFactory.jsonBuilder().startObject().field("name", name).field("age", age).field("date", date).endObject();

updateRequest.doc(field);

UpdateResponse updateResponse = client.update(updateRequest).get();

return new ResponseEntity(updateResponse.getResult().toString(), HttpStatus.OK);

 

} catch (Exception e) {

e.printStackTrace();

return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR);

}

 

}

 

/**

* 复杂查询

* @param name

* @param ltAge

* @param gtAge

* @return

*/

@PostMapping("queryInfo")

public ResponseEntity queryInfo(@RequestParam(name = "name") String name, @RequestParam(name = "ltAge") Integer ltAge, @RequestParam(name = "gtAge") String gtAge) {

BoolQueryBuilder boolQuery = QueryBuilders.boolQuery();

boolQuery.must(QueryBuilders.matchQuery("name", name));

RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age").from(ltAge).to(gtAge);

boolQuery.filter(rangeQueryBuilder);

 

SearchResponse searchResponse = client.prepareSearch("people2").setTypes("_doc").setSearchType(SearchType.DFS_QUERY_THEN_FETCH).setQuery(boolQuery).setFrom(0).setSize(10).get();

List<Map<String, Object>> list = new ArrayList<>();

for (SearchHit hit : searchResponse.getHits()) {

list.add(hit.getSourceAsMap());

}

return new ResponseEntity(list, HttpStatus.OK);

 

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值