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分詞