ElasticSearch基本學習

ES介紹html

維基百科使用Elasticsearch來進行全文搜作並高亮顯示關鍵詞,以及提供search-as-you-type、did-you-mean等搜索建議功能。node

英國衛報使用Elasticsearch來處理訪客日誌,以便能將公衆對不一樣文章的反應實時地反饋給各位編輯。web

StackOverflow將全文搜索與地理位置和相關信息進行結合,以提供more-like-this相關問題的展示。服務器

GitHub使用Elasticsearch來檢索超過1300億行代碼。數據結構

天天,Goldman Sachs使用它來處理5TB數據的索引,還有不少投行使用它來分析股票市場的變更。app

ElasticSearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java開發的,並做爲Apache許可條款下的開放源碼發佈。可以達到實時搜索,穩定,可靠,快速,安裝使用方便。負載均衡

Real-Time Data實時數據elasticsearch

Real-Time Advanced Analytics實時高級分析tcp

Massively Distributed 大規模分佈式分佈式

High Availability 高可用性

Multitenancy 多索引

Full-Text Search 全文搜索

Document-Oriented 面向文檔

Schema-Free 數據結構可自定

Developer-Friendly, RESTful API 開發友好

Per-Operation Persistence 每個操做持久化

Apache 2 Open Source License 許可條款

Build on top of Apache Lucene™ 基於Lucene

Elasticsearch VS Solr

 

http://solr-vs-elasticsearch.com/

 

ES資源

官網:
https://www.elastic.co/downloads/elasticsearch

文檔:
https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html

權威指南:
https://www.elastic.co/guide/en/elasticsearch/guide/current/index.html

權威指南(翻譯):
http://es.xiaoleilu.com/

客戶端:
https://www.elastic.co/guide/en/elasticsearch/client/index.html

C#:http://nest.azurewebsites.net/

Chrome插件Sense

Kibana
安裝sense:./bin/kibana plugin --install elastic/sense
訪問:http://192.168.0.170:5601/app/sense

 

ES概念

集羣&節點(Cluster&Node)

分片&副本(Shard&Replication)

索引(Index)

類型(Document Type)

文檔(Document)

集羣>節點>索引(分片|副本)>類型>文檔

 

ES配置&基本使用

cluster.name: elasticsearch 集羣名稱 默認elasticsearch

node.name: 「node1「 節點名稱 默認會生成

node.master: true 是否有權選舉爲master 默認true

node.data: true 是否存儲數據 默認true

index.number_of_shards: 5 默認索引主分片數量 默認5

index.number_of_replicas: 1 默認索引備份數 默認1

path.conf: /path/to/conf 配置文件路徑 默認es安裝目錄下conf

path.data: /path/to/data 索引數據存放路徑 默認安裝目錄下data

path.work: /path/to/work臨時文件的存儲路徑 默認安裝目錄下work

path.logs: /path/to/logs 日誌路徑 默認安裝目錄下logs

path.plugins: /path/to/plugins 插件路徑 默認安裝目錄下plugins

network.host: 192.168.0.1 綁定的ip 默認127.0.0.1

transport.tcp.port: 9300 傳輸端口 默認9300

transport.tcp.compress: true 傳輸是否壓縮 默認false

http.port: 9200 提供http端口 默認9200

discovery.zen.ping.multicast.enabled: false 是否自動發現節點 默認true

discovery.zen.ping.unicast.hosts: [「host1」, 「host2:port」, 「host3[portX-portY]」]

script.inline: on

script.indexed: on

 

ES分佈式集羣

node.master: false    node.data: true

該node服務器只做爲一個數據節點,只用於存儲索引數據。使該node服務器功能 單一,只用於數據存儲和數據查詢,下降其資源消耗率。

node.master: true    node.data: false

該node服務器只做爲一個主節點,但不存儲任何索引數據。該node服務器將使用 自身空閒的資源,來協調各類建立索引請求或者查詢請求,將這些請求合理分發到相關  的node服務器上。

node.master: false    node.data: false

該node服務器即不會被選做主節點,也不會存儲任何索引數據。該服務器主要用 於查詢負載均衡。在查詢的時候,一般會涉及到從多個node服務器上查詢數據,並請   求分發到多個指定的node服務器,並對各個node服務器返回的結果進行一個彙總處理,  最終返回給客戶端。

 

ES插件

Elasticsearch-head  管理ES

Elasticsearch-kopf 管理ES

Elasticsearch-knapsack 數據導入導出

Elasticsearch-SQL 用SQL查詢數據

Elasticsearch-analysis-ik IK分詞

相關文章
相關標籤/搜索