老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

好程序員Java學習路線分享創建Javaclass

好程序員Java學習路線分享創建Java class,首先通過Transport Client獲取ES的連接

開平ssl適用于網站、小程序/APP、API接口等需要進行數據傳輸應用場景,ssl證書未來市場廣闊!成為創新互聯公司的ssl證書銷售渠道,可以享受市場價格4-6折優惠!如果有意向歡迎電話聯系或者加微信:13518219792(備注:SSL證書合作)期待與您的合作!

private Client client;

//通過Transport Client獲取ES的連接

@Before

public void getClient() throws Exception{

????//ES服務的JavaAPI的port為9300

????//注意:如果請求一個ES集群,可以多添幾個節點

????//為了避免在一個節點出現網絡問題導致的請求失敗問題,可以自動切換另外一個節點

????client = TransportClient.builder().build()

????????????.addTransportAddress(new InetSocketTransportAddress(

????????????????????InetAddress.getByName("localhost"),9300));

????????????//.addTransportAddress(...);

}

操作命令

----------------------------------------新建文檔------------------------------------

  1. 使用json來創建文檔(插入一條數據),自動創建索引和映射

@Test

public void createDocument1(){

????// json格式的數據

????//json "需要轉義 -> \

????String source = "{" +

????????????"\"id\":\"1\"," +

????????????"\"title\":\"Lucene是一套用于全文檢索和搜尋的開源程式庫\"," +

????????????"\"content\":\"Lucene提供了一個簡單卻強大的應用程式接口,能夠做全文索引和搜尋\"" +

????????????"}";

????//創建文檔, 定義索引名稱,文檔類型,主鍵唯一標識ID

????//execute().actionGet() == get() ?代表立刻執行

????IndexResponse indexResponse =

????????????client.prepareIndex("blog", "article", "1")

????????????????????.setSource(source).get(); //加載數據并觸發

????this.getResponse(indexResponse); ?//對應下面封裝信息

????client.close();

}

將打印信息封裝成類,方便this調用

//獲取響應信息

private void getResponse(IndexResponse indexResponse) {

????System.out.println("索引名稱: " + indexResponse.getIndex());

????System.out.println("文檔類型: "+indexResponse.getType());

????System.out.println("ID: "+indexResponse.getId());

????System.out.println("版本: "+indexResponse.getVersion());

????System.out.println("是否創建成功: "+indexResponse.isCreated());

}

  1. 使用map創建文檔,自動創建索引和映射

@Test

public void createDocument2(){

????// map類型的數據

????Map source = new HashMap<>();

????source.put("id","2");

????source.put("title","ElasticSearch");

????source.put("content","是一個分布式的 RESTful 風格的搜索和數據分析引擎");

????//創建文檔

????IndexResponse indexResponse = client.prepareIndex("blog", "article", "2")

????????????.setSource(source).get();

????this.getResponse(indexResponse);

????client.close();

}

使用ES幫助類(執行類),創建文檔
@Test

public void createDocument3() throws Exception{

????XContentBuilder source = XContentFactory.jsonBuilder()

????????????.startObject() //封裝數據

????????????????.field("id","3")

????????????????.field("title","ES的核心")

????????????????.field("content","集中的是巴拉巴拉")

????????????.endObject();

????System.out.println(source.toString());

????//創建文檔

????IndexResponse indexResponse = client.prepareIndex("blog", "article", "3")

????????????.setSource(source).get();

????this.getResponse(indexResponse);

????client.close();

}

----------------------------------------搜索文檔------------------------------------

輸出格式為json格式

搜索文檔數據 -- 單個索引 ?prepareGet

@Test

public void testGetData1(){

????GetResponse getResponse = client.prepareGet("blog", "article", "1").get();

????System.out.println(getResponse.getSourceAsString());

????client.close(); ??//輸出格式為json格式

}

搜索文檔數據 -- 多個索引 ?prepareMultiGet

@Test

public void testGetData2(){

????MultiGetResponse multiGetResponse = client.prepareMultiGet()

????????????.add("blog", "article", "1")

????????????.add("blog", "article", "2", "3")

????????????.get();

????for (MultiGetItemResponse itemResponse : multiGetResponse){

????????GetResponse response = itemResponse.getResponse();

????????if (response.isExists()){

????????????System.out.println(response.getSourceAsString());

????????}

????}

????client.close();

}

----------------------------------------更新文檔------------------------------------

doc更新

創建更新對象

@Test

public void testUpdate1() throws Exception{

????UpdateRequest request = new UpdateRequest();

????request.index("blog");

????request.type("article");

????request.id("1");

????request.doc(XContentFactory.jsonBuilder() //doc 更新方法

????.startObject()

????????????.field("id","1")

????????????.field("title","更新:1")

????????????.field("content","更新:1")

????.endObject());

????UpdateResponse updateResponse = client.update(request).get();

????System.out.println("索引名稱: " + updateResponse.getIndex());

????System.out.println("文檔類型: "+updateResponse.getType());

????System.out.println("ID: "+updateResponse.getId());

????System.out.println("版本: "+updateResponse.getVersion());

????System.out.println("是否創建成功: "+updateResponse.isCreated()); //false

????client.close();

}

直接調用client.update

@Test

public void testUpdate2() throws Exception{

????UpdateResponse updateResponse =

????????????client.update(new UpdateRequest("blog", "article", "2")

????????????????????.doc(XContentFactory.jsonBuilder() //doc 更新方法

????????????????????????.startObject()

????????????????????????????.field("id", "2")

????????????????????????????.field("title", "更新:2")

????????????????????????????.field("content", "更新:2")

????????????????????????.endObject()))

????????????????????.get();

????System.out.println("索引名稱: " + updateResponse.getIndex());

????System.out.println("文檔類型: "+updateResponse.getType());

????System.out.println("ID: "+updateResponse.getId());

????System.out.println("版本: "+updateResponse.getVersion());

????System.out.println("是否創建成功: "+updateResponse.isCreated()); //false

????client.close();

}

創建并更新

@Test

public void testUpdate3() throws Exception{

????// 設置一個查詢的條件,使用ID查詢,如果查不到數據,則添加IndexRequest的文檔數據

????IndexRequest indexRequest = new IndexRequest("blog1", "article", "4")

????????????.source(XContentFactory.jsonBuilder()

????????????????.startObject()

????????????????????.field("id", "4")

????????????????????.field("title", "李雪靜加油")

????????????????????.field("content", "Fighting!")

????????????????.endObject());

????//設置更新的數據,使用ID查詢,如果能查到,則更新UpdateRequest的數據

????UpdateRequest updateRequest = new UpdateRequest("blog1", "article", "4")

????????????.doc(XContentFactory.jsonBuilder()

????????????????????.startObject()

????????????????????.field("title", "new fighting~")

????????????????????.endObject())

????????????.upsert(indexRequest);

????UpdateResponse updateResponse = client.update(updateRequest).get();

????System.out.println("索引名稱: " + updateResponse.getIndex());

????System.out.println("文檔類型: "+updateResponse.getType());

????System.out.println("ID: "+updateResponse.getId());

????System.out.println("版本: "+updateResponse.getVersion());

????System.out.println("是否創建成功: "+updateResponse.isCreated()); //false

????client.close();

}

----------------------------------------刪除文檔------------------------------------

prepareDelete

@Test

public void deleteData(){

????DeleteResponse deleteResponse = client.prepareDelete("blog", "article", "3").get();

????System.out.println("索引名稱: " + deleteResponse.getIndex());

????System.out.println("文檔類型: "+deleteResponse.getType());

????System.out.println("ID: "+deleteResponse.getId());

????System.out.println("版本: "+deleteResponse.getVersion());

????System.out.println("是否刪除成功: "+deleteResponse.isFound());

????client.close();

}

----------------------------------------查詢文檔------------------------------------

安裝分詞器之前的查詢

es提供了queryStringQuery查詢

針對多字短的query_string查詢

@Test

public void testSearch(){

????SearchResponse searchResponse = client.prepareSearch("blog")

????????????.setTypes("article")

//默認分詞器只能查找單個字,并沒有把中文進行分詞,需要我們安裝一個分詞器,IK分詞器

????????????.setQuery(QueryBuilders.queryStringQuery("更新"))

????????????.get();

????//獲取數據的結果對象

????SearchHits hits = searchResponse.getHits();

????//獲取命中次數

????System.out.println("查詢的結果數據有"+hits.getTotalHits()+"條");

????//遍歷所有數據

????Iterator iterator = hits.iterator();

????while (iterator.hasNext()){

????????SearchHit hit = iterator.next();

????????//獲取整條數據

????????System.out.println(hit.getSourceAsString());

????????//獲取單個字段

????????System.out.println("id: "+ hit.getSource().get("id"));

????????System.out.println("title: "+ hit.getSource().get("title"));

????????System.out.println("content: "+ hit.getSource().get("content"));

????}

????client.close();

}


網站標題:好程序員Java學習路線分享創建Javaclass
鏈接URL:http://www.xueling.net.cn/article/psophg.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: 网站黄色在线观看 | 欧美一级淫片aaaaaaa免费 | 国产aⅴ丝袜一区二区三区尤物 | 久久精品一区二区三区视频 | 人人爽人人爽人人片 | 亚洲干干 | 国产免费无码一区二区视频 | 成人性生交A片免费看潘金莲 | 国产又黄又潮娇喘视频在线观看 | 99久久精品国产综合婷婷 | 成人区精品一区二区婷婷 | 日本特级一级片 | 国产精品大尺度 | 麻豆视频在线观看免费网站 | 2021av网| 7777奇米亚洲综合久久 | 88国产精品视频一区二区三区 | 精品人伦一区二区三区潘金莲 | 欧美一区二区三曲的 | 欧美日韩激情亚洲国产 | 国产男女做爰在线视频 | 特黄一区二区 | 成人看片黄A免费看在线 | 国产在视频线精品视频 | 国产一级二级毛片 | 168黄色网| 顶级欧美色妇XXXXX | 国产精品毛片av一区 | 国产黄免费 | 日本亚洲欧洲色α | 黄网久久| 美女脱个精光露出尿口视频 | 成人区精品一区二区婷婷 | 中文字幕精品无码综合网 | 成人乱码一区二区三区av | 成人一区二区三区四区 | 天天摸天天看 | 字幕专区码中文欧美在线 | 国产特级毛片AAAAAA高潮流水 | 国产偷久久一级精品A片 | 99热99干 |