ElasticSearch - JAVAAPI练习
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                ElasticSearch - JAVAAPI练习
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                索引
package com.chun.estest.demo;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHost; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.indices.CreateIndexRequest; import org.elasticsearch.client.indices.CreateIndexResponse; import org.elasticsearch.client.indices.GetIndexRequest; import org.elasticsearch.client.indices.GetIndexResponse; import org.elasticsearch.common.xcontent.XContent; import org.elasticsearch.common.xcontent.XContentFactory; import org.elasticsearch.common.xcontent.XContentType; import org.junit.After; import org.junit.Before; import org.junit.Test;import java.io.IOException;/*** @author Chun* @create 2021-06-09 14:35**/ public class EsTest_Client {RestHighLevelClient esClient = null;@Beforepublic void after(){//創建ES客戶端esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost",9200,"http")));}//索引@Testpublic void index_create() throws IOException {//創建索引CreateIndexRequest request = new CreateIndexRequest("user");CreateIndexResponse response = esClient.indices().create(request, RequestOptions.DEFAULT);//響應狀態boolean acknowledged = response.isAcknowledged();System.out.println("索引操作:"+acknowledged);//關閉esClient.close();}@Testpublic void index_search() throws IOException {GetIndexRequest user = new GetIndexRequest("user");GetIndexResponse response = esClient.indices().get(user, RequestOptions.DEFAULT);System.out.println(response.getAliases());System.out.println(response.getMappings());System.out.println(""+response.getSettings());}@Testpublic void index_delete() throws IOException {DeleteIndexRequest request = new DeleteIndexRequest("user");AcknowledgedResponse response = esClient.indices().delete(request, RequestOptions.DEFAULT);System.out.println("是否刪除成功:"+response.isAcknowledged());}//數據@Testpublic void doc_create() throws IOException {IndexRequest request = new IndexRequest();request.index("user").id("1001");User user = new User("張三","男",30);ObjectMapper mapper = new ObjectMapper();String userJson = mapper.writeValueAsString(user);request.source(userJson, XContentType.JSON);IndexResponse response = esClient.index(request, RequestOptions.DEFAULT);System.out.println(response.getResult());}@Testpublic void doc_update() throws IOException {UpdateRequest request = new UpdateRequest();request.index("user").id("1001");request.doc(XContentType.JSON,"sex","女"); // User user = new User("張三","男",30); // ObjectMapper mapper = new ObjectMapper(); // String userJson = mapper.writeValueAsString(user); // request.source(userJson, XContentType.JSON);UpdateResponse response = esClient.update(request, RequestOptions.DEFAULT);System.out.println(response.getResult());}@Testpublic void doc_search() throws IOException {GetRequest request = new GetRequest();request.index("user").id("1001"); // User user = new User("張三","男",30); // ObjectMapper mapper = new ObjectMapper(); // String userJson = mapper.writeValueAsString(user); // request.source(userJson, XContentType.JSON);GetResponse response = esClient.get(request, RequestOptions.DEFAULT);System.out.println(response.getSourceAsString());}@Testpublic void doc_delete() throws IOException {DeleteRequest request = new DeleteRequest();request.index("user").id("1001"); // User user = new User("張三","男",30); // ObjectMapper mapper = new ObjectMapper(); // String userJson = mapper.writeValueAsString(user); // request.source(userJson, XContentType.JSON);DeleteResponse response = esClient.delete(request, RequestOptions.DEFAULT);System.out.println(response.getResult());}@Afterpublic void After() throws IOException {esClient.close();}}數據
package com.chun.estest.demo;import com.fasterxml.jackson.databind.ObjectMapper; import org.apache.http.HttpHost; import org.elasticsearch.action.admin.indices.delete.DeleteIndexRequest; import org.elasticsearch.action.bulk.BulkRequest; import org.elasticsearch.action.bulk.BulkResponse; import org.elasticsearch.action.delete.DeleteRequest; import org.elasticsearch.action.delete.DeleteResponse; import org.elasticsearch.action.get.GetRequest; import org.elasticsearch.action.get.GetResponse; import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.index.IndexResponse; import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.action.search.SearchResponse; import org.elasticsearch.action.support.master.AcknowledgedResponse; import org.elasticsearch.action.update.UpdateRequest; import org.elasticsearch.action.update.UpdateResponse; import org.elasticsearch.client.RequestOptions; import org.elasticsearch.client.RestClient; import org.elasticsearch.client.RestHighLevelClient; import org.elasticsearch.client.indices.CreateIndexRequest; import org.elasticsearch.client.indices.CreateIndexResponse; import org.elasticsearch.client.indices.GetIndexRequest; import org.elasticsearch.client.indices.GetIndexResponse; import org.elasticsearch.common.unit.Fuzziness; import org.elasticsearch.common.xcontent.XContentType; import org.elasticsearch.index.query.BoolQueryBuilder; import org.elasticsearch.index.query.FuzzyQueryBuilder; import org.elasticsearch.index.query.QueryBuilder; import org.elasticsearch.index.query.QueryBuilders; import org.elasticsearch.index.query.RangeQueryBuilder; import org.elasticsearch.search.SearchHit; import org.elasticsearch.search.SearchHits; import org.elasticsearch.search.builder.SearchSourceBuilder; import org.elasticsearch.search.fetch.subphase.highlight.HighlightBuilder; import org.elasticsearch.search.sort.SortOrder; import org.junit.After; import org.junit.Before; import org.junit.Test;import java.io.IOException; import java.util.Arrays;/*** @author Chun* @create 2021-06-09 14:35**///批量操作 public class EsTest_Client_Batch {RestHighLevelClient esClient = null;@Beforepublic void after(){//創建ES客戶端esClient = new RestHighLevelClient(RestClient.builder(new HttpHost("localhost",9200,"http")));}@Testpublic void doc_Insert_Batch() throws IOException {BulkRequest request = new BulkRequest();request.add(new IndexRequest().index("user").id("1001").source(XContentType.JSON,"name","zhangsan","age",30));request.add(new IndexRequest().index("user").id("1002").source(XContentType.JSON,"name","lisi","age",40));request.add(new IndexRequest().index("user").id("1003").source(XContentType.JSON,"name","wangwu","age",20));BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);System.out.println(response.getTook());System.out.println(Arrays.toString(response.getItems()));}@Testpublic void doc_Delete_Batch() throws IOException {BulkRequest request = new BulkRequest();request.add(new DeleteRequest().index("user").id("1001"));request.add(new DeleteRequest().index("user").id("1002"));request.add(new DeleteRequest().index("user").id("1003"));BulkResponse response = esClient.bulk(request, RequestOptions.DEFAULT);System.out.println(response.getTook());System.out.println(Arrays.toString(response.getItems()));}@Testpublic void doc_Search_all_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");request.source(new SearchSourceBuilder().query(QueryBuilders.matchAllQuery()));SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//條件查詢@Testpublic void doc_Search_Where_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");request.source(new SearchSourceBuilder().query(QueryBuilders.termQuery("name","zhangsan")));SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//條件查詢@Testpublic void doc_Search_Page_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());builder.from(2).size(2); //起始位置 - 第幾頁request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//排序查詢@Testpublic void doc_Search_OrderBy_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());builder.sort("age", SortOrder.ASC); // builder.from(2).size(2); //起始位置 - 第幾頁request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//過濾列@Testpublic void doc_Search_Filter_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder().query(QueryBuilders.matchAllQuery());String [] excludes = {"age"}; //排除哪些字段String [] includes = {}; //包含哪些字段builder.fetchSource(includes,excludes); // builder.from(2).size(2); //起始位置 - 第幾頁request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//組合查詢@Testpublic void doc_Search_Bool_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder();BoolQueryBuilder boolQueryBuilder = QueryBuilders.boolQuery();//and // boolQueryBuilder.must(QueryBuilders.matchQuery("age",30)); // boolQueryBuilder.must(QueryBuilders.matchQuery("name","zhangsan")); // boolQueryBuilder.mustNot(QueryBuilders.matchQuery("name","lisi"));//or // boolQueryBuilder.should(QueryBuilders.matchQuery("age",30)); // boolQueryBuilder.should(QueryBuilders.matchQuery("age",40));builder.query(boolQueryBuilder);request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//范圍查詢@Testpublic void doc_Search_Range_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder();RangeQueryBuilder rangeQueryBuilder = QueryBuilders.rangeQuery("age");rangeQueryBuilder.gte(30); //大于等于 // rangeQueryBuilder.gt(30); //大于 // rangeQueryBuilder.lte(40); //小于等于rangeQueryBuilder.lt(40); //小于builder.query(rangeQueryBuilder);request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//模糊查詢@Testpublic void doc_Search_Fuzzy_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder();FuzzyQueryBuilder fuzziness = QueryBuilders.fuzzyQuery("name", "li1si").fuzziness(Fuzziness.ONE); //Fuzziness.ONE偏差的個數builder.query(fuzziness);request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//高亮顯示@Testpublic void doc_Search_Highlight_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder();FuzzyQueryBuilder fuzziness = QueryBuilders.fuzzyQuery("name", "li1si").fuzziness(Fuzziness.ONE); //Fuzziness.ONE偏差的個數HighlightBuilder highlightBuilder = new HighlightBuilder();highlightBuilder.preTags("<font color='red'>");highlightBuilder.postTags("</font>");highlightBuilder.field("name");builder.highlighter(highlightBuilder);builder.query(fuzziness);request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}//分組查詢@Testpublic void doc_Search_Group_Batch() throws IOException {SearchRequest request = new SearchRequest();request.indices("user");SearchSourceBuilder builder = new SearchSourceBuilder();TermsAggregationBuilder aggregationBuilder = AggregationBuilders.terms("ageGroup").field("age");builder.aggregation(aggregationBuilder);request.source(builder);SearchResponse response = esClient.search(request, RequestOptions.DEFAULT);SearchHits hits = response.getHits();System.out.println(hits.getTotalHits());System.out.println(response.getTook());for (SearchHit hit : hits) {System.out.println(hit.getSourceAsString());}}@Afterpublic void After() throws IOException {esClient.close();}}總結
以上是生活随笔為你收集整理的ElasticSearch - JAVAAPI练习的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 【Qt】解决GDAL直接读取数据到QIm
 - 下一篇: 如何判断基金被高估还是低估?指数基金估值