查看详情 get /person002/_search 查看mappings get /person002/_mapping 查看所有索引 get _cat/indices 查看100条件记录 GET _search { "query": { "match_all": {} }, "from": 0, "size":100 } 查看具体_doc_id get /person002/_doc/8
创建索引
@Test public void test2() throws IOException { //使用client获取操作索引对象 IndicesClient indices = client.indices(); //具体操作获取返回值 //设置名称 CreateIndexRequest person002 = new CreateIndexRequest("person002"); CreateIndexResponse createIndexResponse = indices.create(person002, RequestOptions.DEFAULT); //返回值判断结果 boolean acknowledged = createIndexResponse.isAcknowledged(); System.out.println(acknowledged); }
查询索引
@Test public void test3() throws IOException { IndicesClient indices = client.indices(); GetIndexRequest indexRequest = new GetIndexRequest("person002"); GetIndexResponse response = indices.get(indexRequest, RequestOptions.DEFAULT); Map<String, MappingMetaData> mappings = response.getMappings(); for (String key : mappings.keySet()) { System.out.println(key + "=====" + mappings.get(key).getSourceAsMap()); } }
添加文档,使用对象作为数据
@Test public void test4() throws IOException { Shop shop = new Shop(); shop.setId(223L); shop.setName("dong"); shop.setAddress("广东省汕头大学"); String toJSONString = JSON.toJSONString(shop); IndexRequest indexRequest = new IndexRequest("person002") .id(String.valueOf(shop.getId())).source(toJSONString, XContentType.JSON); IndexResponse index = client.index(indexRequest, RequestOptions.DEFAULT); System.out.println(JSON.toJSONString(index)); }
根据id查询文档
@Test public void test5() throws IOException { GetRequest indexRequest = new GetRequest("person002", "223"); GetResponse response = client.get(indexRequest, RequestOptions.DEFAULT); System.out.println(response.getSourceAsString()); System.out.println("=============================="); System.out.println(JSON.toJSONString(response));; }
elasticsearch批量操作和导入
/** * @author: samxie * @create: 2022/6/10 * @Description: * @FileName: ElasticsearchTest * @History: * @自定义内容: */ @RunWith(SpringRunner.class) @SpringBootTest public class ElasticsearchTest { @Resource private RestHighLevelClient client; private final String INDEX = "person002"; //批量操作 @Test public void test8() throws IOException { BulkRequest bulkRequest = new BulkRequest(); DeleteRequest deleteRequest = new DeleteRequest(INDEX, "5"); bulkRequest.add(deleteRequest); Map<String, Object> map = new TreeMap<>(); map.put("name", "六号"); IndexRequest indexRequest = new IndexRequest(INDEX).id("6").source(map); bulkRequest.add(indexRequest); Map<String, Object> mapUpdate = new HashMap<>(); mapUpdate.put("name", "三号54333333333333333333333333"); Up dateRequest updateRequest = new UpdateRequest(INDEX, "2").doc(mapUpdate); bulkRequest.add(updateRequest); BulkResponse response = client.bulk(bulkRequest, RequestOptions.DEFAULT); System.out.println(response.status()); System.out.println("=====" + JSON.toJSONString(response)); } //导入 @Data class Goods { private String id = UUID.randomUUID().toString(); private String name; private String specStr; private Map spec; public Goods(String name, String specStr, Map spec) { this.name = name; this.specStr = specStr; this.spec = spec; } } @Test public void test9() throws IOException { List<Goods> goodsList = new Vector<>(); goodsList.add(new Goods("1", null, null)); goodsList.add(new Goods("2", null, null)); goodsList.add(new Goods("2dw", null, null)); goodsList.add(new Goods("2wwd", null, null)); //bulk import BulkRequest bulkRequest = new BulkRequest(); for (Goods goods : goodsList) { String specStr = goods.getSpecStr(); Map map = JSON.parseObject(specStr, Map.class); goods.setSpec(map); String toJSONString = JSON.toJSONString(goods); IndexRequest indexRequest = new IndexRequest(INDEX).source(toJSONString, XContentType.JSON); System.out.println("=======" + JSON.toJSONString(indexRequest)); bulkRequest.add(indexRequest); } System.out.println("----" + bulkRequest); BulkResponse response = client.bulk(bulkRequest, RequestOptions.DEFAULT); System.out.println(response.status()); } @Test public void test3() throws IOException { SearchRequest searchRequest = new SearchRequest(INDEX); SearchSourceBuilder sourceBuilder = new SearchSourceBuilder(); QueryBuilder queryBuilder = QueryBuilders.matchAllQuery(); sourceBuilder.query(queryBuilder); searchRequest.source(sourceBuilder); SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT); SearchHits hits = searchResponse.getHits(); long total = hits.getTotalHits().value; System.out.println("总数:" + total); SearchHit[] hits1 = hits.getHits(); for (SearchHit searchHit : hits1) { String sourceAsString = searchHit.getSourceAsString(); System.out.println("=====" + sourceAsString); } } //类型:text:会分词;keyword:不会分词,将全部内容作为一个词条,支持聚合 }