亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

好程序員大數據學習路線分享ELK技術

發布時間:2020-05-11 14:12:09 來源:網絡 閱讀:237 作者:wx5d42865f47214 欄目:大數據

好程序員大數據學習路線分享ELK技術,bin存放elasticSearch?運行命令

???????? config?存放配置文件

???????? lib?存放elasticSearch運行依賴jar

???????? modules?存放elasticSearch?模塊

???????? plugins?存放插件?

?

1.1.?ElasticsearchMysql對比

Elasticsearch 集群可以包含多個索引(Index),每個索引可以包含多個類型(Type),每個類型可以包含多個文檔(Document),每個文檔可以包含多個字段(Field)。以下是?MySQL 和?Elasticsearch 的術語類比圖,幫助理解:

好程序員大數據學習路線分享ELK技術

就像使用?MySQL 必須指定?Database 一樣,要使用?Elasticsearch 首先需要創建?Index:

client.indices.create({index : 'blog'});

這樣就創建了一個名為?blog的?Index。Type 不用單獨創建,在創建?Mapping 時指定就可以。Mapping 用來定義?Document 中每個字段的類型,即所使用的?analyzer、是否索引等屬性,非常關鍵等。

?

索引對象(blob):?存儲數據的表結構?,任何搜索數據,存放在索引對象上?。

???????? 映射(mapping):?數據如何存放到索引對象上,需要有一個映射配置,?包括:數據類型、是否存儲、是否分詞?… 等。

???????? 文檔(document):?一條數據記錄,?存在索引對象上

???????? 文檔類型(type):?一個索引對象?存放多種類型數據,數據用文檔類型進行標識?

【后續編程】:?

第一步:建立索引對象

第二步:建立映射

第三步:存儲數據【文檔】

第四步:指定文檔類型進行搜索數據【文檔】

?

1.1.?創建一個索引

??? Elasticsearch 命令的一般格式是:REST VERBHOST:9200/index/doc-type— 其中?REST VERB?是?PUT、GET?或DELETE。(使用?curlL?-X?動詞前綴來明確指定?HTTP 方法。)

要創建一個索引,可在你的?shell 中運行以下命令:

curl -XPUT "http://localhost:9200/blog01/"

好程序員大數據學習路線分享ELK技術

查看

好程序員大數據學習路線分享ELK技術?

1.1.?插入一個文檔

要在?/blog01?索引下創建一個類型,可插入一個文檔。

要將包含?“Deck the Halls” 的文檔插入索引中,可運行以下命令(將該命令和本教程的其他?CURL 命令都鍵入到一行中):

curl -XPUT "http://localhost:9200/blog01/article/1" -d ?"{"""id""": """1""", """title""": """Whatiselasticsearch"""}"

好程序員大數據學習路線分享ELK技術

前面的命令使用?PUT?動詞將一個文檔添加到?/article文檔類型,并為該文檔分配?ID 為1。URL 路徑顯示為index/doctype/ID(索引/文檔類型/ID)。

1.2.?查看文檔

要查看該文檔,可使用簡單的?GET?命令:

curl -XGET "http://localhost:9200/blog01/article/1"

好程序員大數據學習路線分享ELK技術

Elasticsearch 使用你之前?PUT?進索引中的?JSON 內容作為響應:

1.3.?更新文檔

如果你認識到title字段寫錯了,并想將它更改為?Whatislucene 怎么辦?可運行以下命令來更新文檔:

curl -XPUT "http://localhost:9200/blog01/article/1" -d "{"""id""": """1""", """title""": """Whatislucene"""}"

好程序員大數據學習路線分享ELK技術

因為此命令使用了相同的唯一?ID為1,所以該文檔會被更新。

1.4.?搜索文檔

是時候運行一次基本查詢了,此查詢比你運行來查找?“Get the Halls” 文檔的簡單?GET?要復雜一些。文檔?URL 有一個內置的?_search?端點用于此用途。在標題中找到所有包含單詞?lucene?的數據:

curl -XGET "http://localhost:9200/blog01/article/_search?q=title:'Whatislucene'"

好程序員大數據學習路線分享ELK技術

?參數表示一個查詢。

1.5.?檢查搜索返回對象

????上圖中給出了?Elasticsearch?從前面的查詢返回的數據。

????在結果中,Elasticsearch?提供了多個?JSON?對象。第一個對象包含請求的元數據:看看該請求花了多少毫秒?(took)?和它是否超時?(timed_out)_shards?字段需要考慮?Elasticsearch?是一個集群化服務的事實。甚至在這個單節點本地部署中,Elasticsearch?也在邏輯上被集群化為分片。在往后看可以觀察到?hits?對象包含:

·??????? total?字段,它會告訴你獲得了多少個結果

·??????? max_score,用于全文搜索

·??????? 實際結果

實際結果包含?fields?屬性,因為你將?fields?參數添加到了查詢中。否則,結果中會包含?source,而且包含完整的匹配文檔。_index_type??_id?分別表示索引、文檔類型、ID_score?指的是全文搜索命中長度。這?4?個字段始終會在結果中返回。

1.6.?刪除文檔

暫時不要刪除該文檔,知道如何刪除它就行了:

curl -XDELETE "http://localhost:9200/blog01/article/1"

好程序員大數據學習路線分享ELK技術

1.7.?刪除索引

暫時不要刪除該文檔,知道如何刪除它就行了:

curl -XDELETE "http://localhost:9200/blog01"

好程序員大數據學習路線分享ELK技術

1.要使用?Elasticsearch 首先需要創建?Index:client.indices.create({index : 'blog'});創建了一個名為?blog的?Index

2.Type 不用單獨創建,在創建?Mapping 時指定就可以。

3.Mapping 用來定義?Document 中每個字段的類型,即所使用的?analyzer、是否索引等屬性,非常關鍵等

URL 路徑顯示為index/doctype/ID(索引/文檔類型/ID)

創建文檔(插入一條數據),自動創建索引和映射

?

======================================================

import?org.elasticsearch.action.index.IndexResponse;

import?org.elasticsearch.client.Client;

import?org.elasticsearch.client.transport.TransportClient;

import?org.elasticsearch.common.transport.InetSocketTransportAddress;

import?org.elasticsearch.common.xcontent.XContentBuilder;

import?org.elasticsearch.common.xcontent.XContentFactory;

import?org.junit.Before;

import?org.junit.Test;

?

import?java.net.InetAddress;

import?java.util.HashMap;

import?java.util.Map;

?

public class?ESTest {

????//創建連接

????private?Client?client;

?

????/**

?????* 通過TransportClient獲取ES連接

?????*/

????@Before

????public void?getClient()?throws?Exception {

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

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

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

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

????????????????.addTransportAddress(new?InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));

?

?

????}

????@Test

????????/**

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

?????????*/

?

????????public void?creatDocument() {

????????//jason格式的數據創建文檔(插入一條數據),自動創建索引和映射

????????String source =?"{"?+

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

????????????????"\"title\":\"woshishui\","?+

????????????????"\"content\":\"wozaina\""?+

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

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

????????//execute().actionGet()==get() 代碼馬上執行

????????IndexResponse indexResponse =

????????????????client.prepareIndex("blog",?"article",?"1").setSource(source).get();

?

????????//獲取響應信息

????????this.loadResponse(indexResponse);

????????client.close();

????}

????public void?loadResponse(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());

????}

????????/**

?????????* 2.使用mao創建文檔.自動創建索引和映射

?????????*/

????????public ?void?creatDocument2(){

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

????????????Map<String,Object> source =?new?HashMap<String, Object>();

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

????????????source.put("title","我是誰");

????????????source.put("content","我在哪");

?

????????????//創建文檔

????????????IndexResponse indexResponse =

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

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

????????????this.loadResponse(indexResponse);

?

????????????client.close();

????????}

?

?

????/**

?????* 3.使用ES幫助類(執行類),創建文檔

?????*/

????@Test

????public ?void?creatDocument3()?throws?Exception{

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

?

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

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

????????????????????.field("title","whoami")

????????????????????.field("content","whereami")

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

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

?

????????//創建文檔

????????IndexResponse indexResponse =?client.prepareIndex("blog",?"article",?"3").setSource(source).get();

?

????????this.loadResponse(indexResponse);

????????client.close();

?

?

?

????}

}

?

======================================================================================

搜索文檔數據

1.單個索引

好程序員大數據學習路線分享ELK技術?

2.多個索引

好程序員大數據學習路線分享ELK技術

更新數據

方式一:

好程序員大數據學習路線分享ELK技術

方式二:

好程序員大數據學習路線分享ELK技術

方式三

好程序員大數據學習路線分享ELK技術

刪除數據

好程序員大數據學習路線分享ELK技術

查詢

queryStringQuery:

好程序員大數據學習路線分享ELK技術

es默認的分詞器并沒有中文進行分詞,需要我們按照一個比默認屌很多的分詞器(Ik分詞器)

?

創建映射

好程序員大數據學習路線分享ELK技術

好程序員大數據學習路線分享ELK技術


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

屏边| 遵化市| 嫩江县| 铜梁县| 错那县| 甘德县| 墨竹工卡县| 池州市| 淮南市| 曲周县| 沙雅县| 蒙阴县| 丹阳市| 措美县| 枣庄市| 祁连县| 东台市| 文山县| 呼玛县| 梧州市| 阿勒泰市| 绥化市| 佛坪县| 称多县| 乌兰察布市| 尉犁县| 徐州市| 安达市| 天峨县| 阿坝县| 岳池县| 陇西县| 忻城县| 登封市| 滨海县| 吉木乃县| 富宁县| 珠海市| 呼玛县| 碌曲县| 乐平市|