ElasticSearch 基本概念與操作

Elasticsearch(簡稱ES)是一個基於Apache Lucene(TM)的開源搜索引擎,無論在開源還是專有領域,Lucene 可以被認為是迄今為止最先進、性能最好的、功能最全的搜索引擎庫。注意,Lucene 只是一個庫。想要發揮其強大的作用,你需使用 Java 並要將其集成到你的應用中。

Lucene 非常複雜,你需要深入的瞭解檢索相關知識來理解它是如何工作的,就跟學習 springmvc 之前先從 servlet 開始,繁瑣複雜的工作,Solor、Elasticsearch 應由而生, 其使用 Java 編寫並使用 Lucene 來建立索引並實現搜索功能,但是它的目的是通過簡單連貫的 RESTful API 讓全文搜索變得簡單並隱藏 Lucene 的複雜性。

index(索引):動詞表示建立索引,名詞表示建立好的索引文件。索引是具有某些類似特徵的文檔集合,類似數據庫的概念。索引由一個全小寫的名稱標示,對數據的增刪改搜索等都需要指定索引名稱。

type(類型) 6之前的版本還有一個類型的概念,這個是介於文檔和索引之間的概念,每一個索引下可以建立多個類型,文檔的建立需要指定文檔和類型。 6之後單個索引只有一個類型,7以後不建議使用,8之後就廢棄了。

document(文檔) 文檔是構建索引的基本單元,文檔以json各式表示,存儲基本數據

Shard and Replicas (分片和副本) 一個索引可以存儲大量的數據,甚至超過單個節點的磁盤存儲空間。為了解決這個問題,ES提供了將當個索引分割成多個分片的功能,創建索引時,可以指定任意數量的分片。每個分片都是一個功能齊全且獨立的“index”,且可以被託管到集群中的任意節點上。分片既提供了容量水平擴展的能力,多個分片允許分佈式併發操作,也大大提高了性能。副本是為了容錯機制,不然一個機器故障了,沒有備份豈不是就尷尬了。

操作一下ElasticSearch,首先安裝一下Kibana:

Kibana 是一個基於 Node.js 的 Elasticsearch 索引庫數據統計工具,可以利用 Elasticsearch 的聚合功能,生成各種圖表,如柱形圖,線狀圖,餅圖等。而且還提供了操作 Elasticsearch 索引數據的控制檯,並且提供了一定的API提示,非常有利於我們學習 Elasticsearch 的語法。

下載Kibana,下載的Kibana要和你的ElasticSearch版本一致:

<code>wget https://artifacts.elastic.co/downloads/kibana/kibana-6.1.0-linux-x86_64.tar.gz/<code>

解壓:

<code>tar -zxvf kibana-6.1.0-linux-x86_64.tar.gz -C  目錄/<code>

解壓之後需要稍微修改下配置文件,配置文件裡面很多配置,現在只是為了簡單操作,所以先簡單配置一下,其他的配置的意思以後再說: vi config/kibana.yml

<code> # 服務地址 和端口
 server.host: "172.17.0.11"
 server.port: 5601
 # ElasticSearch的地址
 elasticsearch.url: "http://172.17.0.11:9200"/<code>

改好之後啟動: bin/kibana啟動之後就可以在 瀏覽器裡面輸入ip和端口號就可以訪問了

ElasticSearch 基本概念與操作

Dev Tools 提供的可以操作數據的工具

例如創建一個索引:

<code>PUT demo/demo1/1
{
  "name":"xiao ming",
  "age":20,
  "describe":"zhe這是一個測試測試一個這是"
}/<code>
ElasticSearch 基本概念與操作

get 查詢一下:

ElasticSearch 基本概念與操作

總算好了 ┭┮﹏┭┮ 看下ElasticSearch-header裡面也有了

ElasticSearch 基本概念與操作


ElasticSearch 基本概念與操作

參考:

https://www.cnblogs.com/niceyoo/p/10864783.html

https://www.jianshu.com/p/b261373088be

https://www.cnblogs.com/niceyoo/p/10864783.html#

https://github.com/medcl/elasticsearch-analysis-ik/tree/2.x


分享到:


相關文章: