日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

Elasticsearch(Transport Client)常用操作

發(fā)布時(shí)間:2023/12/16 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Elasticsearch(Transport Client)常用操作 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

這里描述操作elasticsearch采用TransportClient這種方式,官方明確表示在ES 7.0版本中將棄用TransportClient客戶端,且在8.0版本中完全移除它.
記錄一些常用的方法:

官方文檔:
TransportClient

/** * 簡(jiǎn)單查詢es 指定index type id */ @Testpublic void search() throws UnknownHostException {//獲取clientSettings settings= Settings.builder().put("cluster.name","my-application").build();TransportClient transportClient=new PreBuiltTransportClient(settings);transportClient.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));// 發(fā)起請(qǐng)求得到響應(yīng)GetResponse response=transportClient.prepareGet("index3","user3","10").get();System.out.println(response.getSource());}/*** 增加文檔*/@Testpublic void insert() throws Exception{Settings settings= Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));XContentBuilder contentBuilder= XContentFactory.jsonBuilder().startObject().field("catid","22").field("classify",54).field("author","ssve").field("id","1").field("title","菜鳥(niǎo)成長(zhǎng)記").endObject();IndexResponse indexResponse = client.prepareIndex("index3", "user3", "10").setSource(contentBuilder).get();System.out.println(indexResponse.status());}/*** 刪除文檔*/@Testpublic void delete() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));DeleteResponse deleteResponse = client.prepareDelete("index3", "user3", "10").get();System.out.println(deleteResponse.status());}/*** 修改文檔*/@Testpublic void update() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));UpdateRequest request=new UpdateRequest();XContentBuilder contentBuilder=XContentFactory.jsonBuilder().startObject().field("id","555").endObject();request.index("index3").type("user3").id("10").doc(contentBuilder);UpdateResponse updateResponse = client.update(request).get();System.out.println(updateResponse.status());}/***upsert使用 如有存在對(duì)應(yīng)文檔就修改 不存在就新增 需要指定修改的文檔 和新增的文檔*/@Testpublic void upsert() throws IOException, ExecutionException, InterruptedException {Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));XContentBuilder builder=XContentFactory.jsonBuilder().startObject().field("catid","22").field("classify",54).field("author","zhang").field("id","10").field("title","菜鳥(niǎo)成長(zhǎng)記").endObject();UpdateRequest request=new UpdateRequest();IndexRequest indexRequest=new IndexRequest();indexRequest.index("index3").type("user3").id("11").source(builder);request.index("index3").type("user3").id("11").doc(new XContentFactory().jsonBuilder().startObject().field("id","i love you").endObject()).upsert(indexRequest);UpdateResponse updateResponse = client.update(request).get();System.out.println(updateResponse.status());}/*** * 批量查詢 multiGet*/@Testpublic void multiGet() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));MultiGetRequest request=new MultiGetRequest();request.add("index3","user3","11");request.add("index3","user3","10");request.add("index3","user3","13");request.add("index3","user3","14");MultiGetResponse multiGetItemResponses = client.multiGet(request).get();for (MultiGetItemResponse response:multiGetItemResponses) {System.out.println(response.getResponse().getSourceAsString());}}/*** * bulk實(shí)現(xiàn)批量增刪改操作。*/@Testpublic void bulk() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));BulkRequestBuilder bulkRequestBuilder = client.prepareBulk();IndexRequest request=new IndexRequest();request.index("index3").type("user3").id("13").source(XContentFactory.jsonBuilder().startObject().field("catid","85").field("classify","85").field("author","宇宙無(wú)敵").field("id","漫威").field("title","漫威").endObject());IndexRequest request1=new IndexRequest();request1.index("index3").type("user3").id("14").source(XContentFactory.jsonBuilder().startObject().field("catid","55").field("classify","85").field("author","宇宙無(wú)敵").field("id","漫威").field("title","漫威").endObject());bulkRequestBuilder.add(request1);bulkRequestBuilder.add(request);BulkResponse bulkItemResponses = bulkRequestBuilder.get();System.out.println(bulkItemResponses.status());}/*** * 使用query查詢 match_all 查詢所有*/@Testpublic void query() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));MatchAllQueryBuilder builder= QueryBuilders.matchAllQuery();SearchRequestBuilder index3 = client.prepareSearch("index3").setQuery(builder).setSize(5);SearchResponse searchResponse = index3.get();SearchHits hits = searchResponse.getHits();for (SearchHit hit:hits) {System.out.println(hit.getSourceAsString());}}/**** 使用query查詢 match 查詢*/@Testpublic void matchQuery() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));MatchQueryBuilder matchQueryBuilder = QueryBuilders.matchQuery("title", "愛(ài)");SearchRequestBuilder index = client.prepareSearch("index3").setQuery(matchQueryBuilder).setSize(10);SearchHits hits = index.get().getHits();for (SearchHit hit:hits) {System.out.println(hit.getSourceAsString());}}/**** 使用query查詢 mutilMatch 查詢*/@Testpublic void mutilMatchQuery() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));MultiMatchQueryBuilder multiMatchQueryBuilder = QueryBuilders.multiMatchQuery("周星馳影帝", "author","title");SearchRequestBuilder index = client.prepareSearch("index3").setQuery(multiMatchQueryBuilder).setSize(10);SearchHits hits = index.get().getHits();for (SearchHit hit:hits) {System.out.println(hit.getSourceAsString());}}/**** 使用query查詢 termheterms查詢*/@Testpublic void termsMatchQuery() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));TermsQueryBuilder termsQueryBuilder = QueryBuilders.termsQuery("title", "周星馳", "影帝");SearchRequestBuilder index = client.prepareSearch("index3").setQuery(termsQueryBuilder).setSize(10);SearchHits hits = index.get().getHits();for (SearchHit hit:hits) {System.out.println(hit.getSourceAsString());}}/**** 使用query查詢 范圍 通配符 前綴 模糊查詢*/@Testpublic void query1() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));//范圍查詢//QueryBuilder queryBuilder = QueryBuilders.rangeQuery("classify").from("1").to("40");//通配符查詢 * 零個(gè)或多個(gè) // QueryBuilder queryBuilder = QueryBuilders.wildcardQuery("author","周*");//前綴查詢 // QueryBuilder queryBuilder = QueryBuilders.prefixQuery("author","周");//模糊查詢 查詢類型的 // QueryBuilder queryBuilder = QueryBuilders.fuzzyQuery("id","aac");//id查詢QueryBuilder queryBuilder = QueryBuilders.idsQuery().addIds("1","2","4");SearchRequestBuilder index = client.prepareSearch("index3").setQuery(queryBuilder).setSize(10);SearchHits hits = index.get().getHits();for (SearchHit hit:hits) {System.out.println(hit.getSourceAsString());}}/**** 聚合查詢*/@Testpublic void aggregation() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));AggregationBuilder aggregationBuilder= AggregationBuilders.max("max").field("id");SearchResponse index3 = client.prepareSearch("index3").addAggregation(aggregationBuilder).get();Max max = index3.getAggregations().get("max");System.out.println(max.getValue());}/**** queryString */@Testpublic void queryString() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));// + 代表必須有 -代表沒(méi)有 QueryBuilder queryBuilder=QueryBuilders.queryStringQuery("+周星馳 -sss");SearchRequestBuilder index3 = client.prepareSearch("index3").setQuery(queryBuilder).setSize(10);SearchResponse searchResponse = index3.get();for (SearchHit hit:searchResponse.getHits()) {System.out.println(hit.getSourceAsString());}}/**** 組合查詢*/@Testpublic void boolQuery() throws Exception{Settings settings=Settings.builder().put("cluster.name","my-application").build();TransportClient client=new PreBuiltTransportClient(settings);client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"),9300));QueryBuilder queryBuilder=QueryBuilders.boolQuery().must(QueryBuilders.matchQuery("author","周星馳")).mustNot(QueryBuilders.matchQuery("title","梁朝偉")).should(QueryBuilders.matchQuery("title","影帝")).filter(QueryBuilders.rangeQuery("id").gte("1"));SearchRequestBuilder index3 = client.prepareSearch("index3").setQuery(queryBuilder).setSize(10);SearchResponse searchResponse = index3.get();for (SearchHit hit:searchResponse.getHits()) {System.out.println(hit.getSourceAsString());}}

總結(jié)

以上是生活随笔為你收集整理的Elasticsearch(Transport Client)常用操作的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。