JestClient来操作es
参考https://blog.csdn.net/a1721037899/article/details/86511810
删除文档
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| /** * 根据主键删除文档 * @param index 待操作的库 * @param type 待操作的表 * @param id 待操作的主键id * @return */ public JestResult deleteDocument(String index, String type, String id) { Delete delete = new Delete.Builder(id).index(index).type(type).build(); JestResult result = null ; try { result = client.execute(delete); log.info("deleteDocument == " + result.getJsonString()); } catch (IOException e) { e.printStackTrace(); } return result; }
|
查询文档
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| @Override public Page<FullTextDTO> query(String queryString, int pageNo, int size) { SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); QueryStringQueryBuilder queryStringQueryBuilder = new QueryStringQueryBuilder(queryString); searchSourceBuilder.query(queryStringQueryBuilder).from(from(pageNo, size)).size(size); log.info("搜索DSL:{}", searchSourceBuilder.toString()); Search search = new Search.Builder(searchSourceBuilder.toString()) .addIndex(INDEX) .addType(TYPE) .build(); try { SearchResult result = client.execute(search); List<SearchResult.Hit<FullTextDTO, Void>> hits = result.getHits(FullTextDTO.class); List<FullTextDTO> articles = hits.stream().map(hit -> { FullTextDTO article = hit.source; return article; }).collect(toList()); int took = result.getJsonObject().get("took").getAsInt(); Page<FullTextDTO> page = Page.<FullTextDTO>builder().list(articles).pageNo(pageNo).size(size).total(result.getTotal()).took(took).build(); return page; } catch (IOException e) { log.error("search异常", e); return null; } }
|
新增文档
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| //数据库导入到索引库 @Override public boolean save(FullTextDTO fullTextDTO) { Index index = new Index.Builder(fullTextDTO).index(INDEX).type(TYPE).build(); JestResult jestResult = null; try { jestResult = client.execute(index); } catch (IOException e) { e.printStackTrace(); } log.info("save返回结果{}", jestResult.getJsonString()); return true;
}
|