<dependency><groupId>org.elasticsearch</groupId><artifactId>elasticsearch</artifactId><version>6.8.0</version>
</dependency>
<dependency><groupId>org.elasticsearch.client</groupId><artifactId>transport</artifactId><version>6.8.0</version>
</dependency>
<dependency><groupId>org.elasticsearch.plugin</groupId><artifactId>transport-netty4-client</artifactId><version>6.8.0</version>
</dependency>
// 1.在restful的创建方式PUT /dangdang
{"mappings": {"book":{"properties": {"name":{"type":"text","analyzer": "ik_max_word"},"age":{"type":"integer"},"sex":{"type":"keyword"},"content":{"type":"text","analyzer": "ik_max_word"}}}}
}
//创建ES客户端操作对象
@Test
public void init() throws UnknownHostException {PreBuiltTransportClient preBuiltTransportClient = new PreBuiltTransportClient(Settings.EMPTY);preBuiltTransportClient.addTransportAddress(new ByName("192.168.202.200"),9300));
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-EUi6IMra-1598000722733)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702203651495.png)]
//创建索引
@Test
public void createIndex() throws UnknownHostException, ExecutionException, InterruptedException {PreBuiltTransportClient preBuiltTransportClient = new PreBuiltTransportClient(Settings.EMPTY);preBuiltTransportClient.addTransportAddress(new ByName("192.168.202.200"),9300));//定义索引请求CreateIndexRequest ems = new CreateIndexRequest("ems");//执行索引创建CreateIndexResponse createIndexResponse = preBuiltTransportClient.admin().indices().create(ems).get();System.out.println(createIndexResponse.isAcknowledged());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OyMGwkGA-1598000722735)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702203936122.png)]
//删除索引
@Test
public void deleteIndex() throws UnknownHostException, ExecutionException, InterruptedException {PreBuiltTransportClient preBuiltTransportClient = new PreBuiltTransportClient(Settings.EMPTY);preBuiltTransportClient.addTransportAddress(new ByName("192.168.202.200"),9300));//定义索引请求DeleteIndexRequest ems = new DeleteIndexRequest("ems");//执行索引删除AcknowledgedResponse acknowledgedResponse = preBuiltTransportClient.admin().indices().delete(ems).get();System.out.println(acknowledgedResponse.isAcknowledged());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CIeaP06L-1598000722737)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702203443545.png)]
//创建索引类型和映射
@Test
public void init() throws UnknownHostException, ExecutionException, InterruptedException {PreBuiltTransportClient preBuiltTransportClient = new PreBuiltTransportClient(Settings.EMPTY);preBuiltTransportClient.addTransportAddress(new ByName("192.168.202.200"),9300));//创建索引CreateIndexRequest ems = new CreateIndexRequest("ems");//定义json格式映射String json = "{"properties":{"name":{"type":"text","analyzer":"ik_max_word"},"age":{"type":"integer"},"sex":{"type":"keyword"},"content":{"type":"text","analyzer":"ik_max_word"}}}";//设置类型和mappingems.mapping("emp",json, XContentType.JSON);//执行创建CreateIndexResponse createIndexResponse = preBuiltTransportClient.admin().indices().create(ems).get();System.out.println(createIndexResponse.isAcknowledged());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oWwIKJ9R-1598000722738)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702205610800.png)]
//索引一条文档 指定id
@Test
public void createIndexOptionId() throws JsonProcessingException {Emp emp = new Emp("小陈", 23, "男", "这是一个单纯的少年,单纯的我!");String s = JSONString(emp);IndexResponse indexResponse = transportClient.prepareIndex("ems", "emp", "1").setSource(s, XContentType.JSON).get();System.out.println(indexResponse.status());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-irfeekTQ-1598000722740)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702210532815.png)]
//索引一条文档 指定id
@Test
public void createIndexOptionId() throws JsonProcessingException {Emp emp = new Emp("小白", 23, "男", "这是一个单纯的小白,单纯的我!");String s = JSONString(emp);IndexResponse indexResponse = transportClient.prepareIndex("ems", "emp").setSource(s, XContentType.JSON).get();System.out.println(indexResponse.status());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-6z639E5L-1598000722741)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702210643404.png)]
//更新一条记录
@Test
public void testUpdate() throws IOException {Emp emp = new Emp();emp.setName("明天你好");String s = JSONString(emp);UpdateResponse updateResponse = transportClient.prepareUpdate("ems", "emp", "1").setDoc(s,XContentType.JSON).get();System.out.println(updateResponse.status());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-K8rOvQkn-1598000722742)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702210954634.png)]
//删除一条记录
@Test
public void testDelete() throws UnknownHostException {DeleteResponse deleteResponse = transportClient.prepareDelete("ems", "emp", "1").get();System.out.println(deleteResponse.status());
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YJhCz67a-1598000722743)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702211137768.png)]
//批量更新
@Test
public void testBulk() throws IOException {//添加第一条记录IndexRequest request1 = new IndexRequest("ems","emp","1");Emp emp = new Emp("中国科技", 23, "男", "这是好人");request1.JSONString(emp),XContentType.JSON);//添加第二条记录IndexRequest request2 = new IndexRequest("ems","emp","2");Emp emp2 = new Emp("中国科技", 23, "男", "这是好人");request2.JSONString(emp2),XContentType.JSON);//更新记录UpdateRequest updateRequest = new UpdateRequest("ems","emp","1");Emp empUpdate = new Emp();empUpdate.setName("中国力量");updateRequest.JSONString(empUpdate),XContentType.JSON);//删除一条记录DeleteRequest deleteRequest = new DeleteRequest("ems","emp","2");BulkResponse bulkItemResponses = transportClient.prepareBulk().add(request1).add(request2).add(updateRequest).add(deleteRequest).get();BulkItemResponse[] items = Items();for (BulkItemResponse item : items) {System.out.println(item.status());}
}
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-sQ1YxlWa-1598000722744)(E:/桌面备份/文档/技术资料/elasticsearch 6.8.0全套资料/elasticsearch/笔记/ElasticSearch_6.8.0版本.assets/image-20200702211756304.png)]
/*** 查询所有并排序* ASC 升序 DESC 降序* addSort("age", SortOrder.ASC) 指定排序字段以及使用哪种方式排序* addSort("age", SortOrder.DESC) 指定排序字段以及使用哪种方式排序*/@Testpublic void testMatchAllQuery() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(QueryBuilders.matchAllQuery()).addSort("age", SortOrder.DESC).get();SearchHits hits = Hits();System.out.println("符合条件的记录数: "alHits);for (SearchHit hit : hits) {System.out.print("当前索引的分数: "Score());System.out.print(", 对应结果:=====>"SourceAsString());System.out.println(", 指定字段结果:"SourceAsMap().get("name"));System.out.println("=================================================");}}
/*** 分页查询* From 从那条记录开始 默认从0 开始 form = (pageNow-1)*size* Size 每次返回多少条符合条件的结果 默认10*/@Testpublic void testMatchAllQueryFormAndSize() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(QueryBuilders.matchAllQuery()).setFrom(0).setSize(2).get();SearchHits hits = Hits();System.out.println("符合条件的记录数: "alHits);for (SearchHit hit : hits) {System.out.print("当前索引的分数: "Score());System.out.print(", 对应结果:=====>"SourceAsString());System.out.println(", 指定字段结果:"SourceAsMap().get("name"));System.out.println("=================================================");}}
/*** 查询返回指定字段(source) 默认返回所有* setFetchSource 参数1:包含哪些字段 参数2:排除哪些字段* setFetchSource("*","age") 返回所有字段中排除age字段* setFetchSource("name","") 只返回name字段* setFetchSource(new String[]{},new String[]{})*/@Testpublic void testMatchAllQuerySource() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(QueryBuilders.matchAllQuery()).setFetchSource("*","age").get();SearchHits hits = Hits();System.out.println("符合条件的记录数: "alHits);for (SearchHit hit : hits) {System.out.print("当前索引的分数: "Score());System.out.print(", 对应结果:=====>"SourceAsString());System.out.println(", 指定字段结果:"SourceAsMap().get("name"));System.out.println("=================================================");}}
/*** term查询*/@Testpublic void testTerm() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));TermQueryBuilder queryBuilder = Query("name","中国");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(queryBuilder).get();}
/*** rang查询* lt 小于* lte 小于等于* gt 大于* gte 大于等于*/@Testpublic void testRange() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age").lt(45).gte(8);SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(rangeQueryBuilder).get();}
/*** prefix 前缀查询**/@Testpublic void testPrefix() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));PrefixQueryBuilder prefixQueryBuilder = QueryBuilders.prefixQuery("name", "中");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(prefixQueryBuilder).get();}
/*** wildcardQuery 通配符查询**/@Testpublic void testwildcardQuery() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));WildcardQueryBuilder wildcardQueryBuilder = QueryBuilders.wildcardQuery("name", "中*");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(wildcardQueryBuilder).get();}
/*** ids 查询*/@Testpublic void testIds() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));IdsQueryBuilder idsQueryBuilder = QueryBuilders.idsQuery().addIds("1","2");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(idsQueryBuilder).get();}
/*** fuzzy 查询*/@Testpublic void testFuzzy() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));FuzzyQueryBuilder fuzzyQueryBuilder = QueryBuilders.fuzzyQuery("content", "国人");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(fuzzyQueryBuilder).get();}
/*** bool 查询*/@Testpublic void testBool() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();boolQueryBuilder.should(QueryBuilders.matchAllQuery());boolQueryBuilder.mustNot(QueryBuilders.rangeQuery("age").lte(8));boolQueryBuilder.Query("name","中国"));SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").setQuery(boolQueryBuilder).get();}
/*** 高亮查询* .highlighter(highlightBuilder) 用来指定高亮设置* requireFieldMatch(false) 开启多个字段高亮* field 用来定义高亮字段* preTags("<span style='color:red'>") 用来指定高亮前缀* postTags("</span>") 用来指定高亮后缀*/@Testpublic void testHighlight() throws UnknownHostException {TransportClient transportClient = new PreBuiltTransportClient(Settings.EMPTY).addTransportAddress(new ByName("172.16.251.142"), 9300));TermQueryBuilder termQueryBuilder = Query("name", "中国");HighlightBuilder highlightBuilder = new HighlightBuilder();quireFieldMatch(false).field("name").field("content").preTags("<span style='color:red'>").postTags("</span>");SearchResponse searchResponse = transportClient.prepareSearch("dangdang").setTypes("book").highlighter(highlightBuilder).highlighter(highlightBuilder).setQuery(termQueryBuilder).get();SearchHits hits = Hits();System.out.println("符合条件的记录数: "alHits);for (SearchHit hit : hits) {Map<String, Object> sourceAsMap = SourceAsMap();Map<String, HighlightField> highlightFields = HighlightFields();System.out.println("================高亮之前==========");for(Map.Entry<String,Object> Set()){System.out.println("key: "Key() +" value: "Value());}System.out.println("================高亮之后==========");for (Map.Entry<String,Object> Set()){HighlightField highlightField = (Key());if (highlightField!=null){System.out.println("key: "Key() +" value: "+ highlightField.fragments()[0]);}else{System.out.println("key: "Key() +" value: "Value());}}}}
本文发布于:2024-01-28 05:42:20,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063917445202.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |