ES 发表于 2020-05-21 1234<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId></dependency> entity层 1234567891011@Data@Document(indexName = "buy", type = "_doc")public class TArticle implements Serializable { private static final long serialVersionUID = -34674011594388686L; /** * 文章id */ @Id private Long id; // 省略} controller层,引入ElasticsearchTemplate,进行增删查改 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 @Autowired private ElasticsearchTemplate elasticSearchTemplate; /** * 删除文章 */@GetMapping("/deleteById/{id}")public ApiResult deleteById(@PathVariable("id") Integer id) { boolean delete = tArticleService.deleteById(id); if (delete) { elasticSearchTemplate.delete(TArticle.class, id.toString()); return ApiResult.resultWith(ResultCodeEnum.SUCCESS); } else { return ApiResult.errorWith(ResultCodeEnum.OPERATION_FAILED); }}/** * 添加文章 */@PostMapping("/addArticle")public ApiResult addCorpus(TArticle tArticle) { if (tArticleService.insert(tArticle)) { IndexQuery indexQuery = new IndexQueryBuilder().withObject(tArticle).build(); elasticSearchTemplate.index(indexQuery); return ApiResult.resultWith(ResultCodeEnum.SUCCESS); } else { return ApiResult.errorWith(ResultCodeEnum.ERROR); }}/** * 修改文章 * id 和 修改内容 * * @param tArticle * @return */@PostMapping("/updateArticle")public ApiResult updateArticle(TArticle tArticle) { if (tArticleService.update(tArticle) > 0) { UpdateRequest request = new UpdateRequest("buy","_doc",tArticle.getId().toString()); Map<String, Object> map = BeanUtil.beanToMap(tArticle,false,true); request.doc(toArgs(map)); UpdateQuery updateQuery = new UpdateQueryBuilder().withId(tArticle.getId().toString()).withClass(TArticle.class).withUpdateRequest(request).build(); elasticSearchTemplate.update(updateQuery); return ApiResult.resultWith(ResultCodeEnum.SUCCESS); } else { return ApiResult.errorWith(ResultCodeEnum.ERROR); }}/** * 将批量数据转换成es参数数组 * @param data * @return */private Object[] toArgs(Map<String, Object> data) { List<Object> args = new ArrayList<>(); if (CollectionUtil.isEmpty(data)) { throw new RuntimeException("批量操作数据不可为空 !"); } data.forEach((key, value) -> { args.add(key); args.add(value); }); return args.toArray();}/** * 查询所有数据 ElasticSearch * matchAllQuery()全部查询 * fuzzyQuery()模糊查询 注意模糊查询不能模糊查long,int数字类型 * termQuery() 词条查询 * idsQuery() id查询 */@RequestMapping("/findAll")public List<TArticle> findAll() { SearchQuery searchQuery1 = new NativeSearchQueryBuilder() .withQuery(matchAllQuery()) .build(); SearchQuery searchQuery2 = new NativeSearchQueryBuilder() .withQuery(QueryBuilders.fuzzyQuery("address", "Street")) .build(); List<TArticle> tArticles = elasticSearchTemplate.queryForList(searchQuery, TArticle.class); tArticles.forEach(System.out::println); return tArticles;} 赏个🍗吧 打赏 微信支付 支付宝 本文作者: Keeep 本文链接: http://Keeep.coding.me/blog/ES/ 版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!