具體請參考官方文檔 -> Elasticsearch Referencehtml
Elasticsearch 是一個基於 Lucene 的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於 RESTful web 接口。Elasticsearch 是用 Java 開發的,並做爲 Apache 許可條款下的開放源碼發佈,是當前流行的企業級搜索引擎。設計用於雲計算中,可以達到實時搜索,穩定,可靠,快速,安裝使用方便。node
一、開發模式git
可使用如下命令快速啓動Elasticsearch以進行開發或測試:github
$ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:6.5.3 # 集成ik插件 $ docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" bachue/elasticsearch-ik:6.2.4
二、生產模式web
該vm.max_map_count
內核設置須要至少設置爲2 62144
用於生產。根據您的平臺:docker
Linux的數據庫
該vm.max_map_count
設置應在/etc/sysctl.conf中永久設置:跨域
$ grep vm.max_map_count /etc/sysctl.conf vm.max_map_count=262144
要在實時系統類型上應用該設置: sysctl -w vm.max_map_count=262144
安全
三、安裝成功後便可訪問bash
一、ElasticHD 是一款 Elasticsearch的可視化應用(無需配置elasticsearch.yml
)
$ docker run -p 9800:9800 -d --link es --name elastichd containerize/elastichd
二、elasticsearch-head是elasticsearch的一個集羣管理工具(須要配置elasticsearch.yml
該插件能直接對 Elasticsearch 的數據進行增刪改查,所以存在安全性的問題。建議生產環境下不要使用該插件!)
for Elasticsearch 5.x: docker run -d --name es-head -p 9100:9100 --link es docker.io/mobz/elasticsearch-head:5
# 安裝es版本5 不然部分操做沒法正常使用(沒法新建索引等) docker run -p 9200:9200 -p 9300:9300 -d --name es -e "discovery.type=single-node" elasticsearch:5es默認不支持跨域訪問的,因此須要從新配置:
Ⅰ、進入容器
docker exec -it es bashⅡ、在
elasticsearch.yml
配置文件中加入一下內容,而後重啓服務。http.cors.enabled: true http.cors.allow-origin: "*" # 沒法使用vi, 重定向方式完成 echo "http.cors.enabled: true" >> elasticsearch.yml echo "http.cors.allow-origin: \"*\"" >> elasticsearch.yml
單個 es 實例稱爲一個節點(node) , 一組節點構成一個集羣(cluster)。
含有相同屬性的文檔集合 - > es會索引全部字段,通過處理後寫入一個反向索引(Inverted Index)。查找數據的時候,直接查找該索引(必須小寫)。
每一個索引都有多個分片,每一個分片都是 Lucene 索引
拷貝一份分片就完成分片的副本
索引能夠定義一個或多個類型,文檔必須屬於一個類型
Index 裏面單條的記錄稱爲 Document(文檔)。許多條 Document 構成了一個 Index。
Document 使用 JSON 格式表示,下面是一個例子。
{ "user": "張三", "title": "工程師", "desc": "數據庫管理" }
同一個 Index 裏面的 Document,不要求有相同的結構(scheme),可是最好保持相同,這樣有利於提升搜索效率。
Elasticsearch 支持 RESTFUL 風格 API,其 API 基本格式以下:
http://<ip>:<port>/<索引>/<類型>/<文檔id>
5.1 建立索引
爲了方便測試,咱們使用 ARC工具進行接口的請求。
5.1.1 建立一個非結構化的索引,須要使用 PUT 請求。例如建立一個名爲 book 的索引。
5.1.2 建立一個結構化的索引
5.3.1 指定id
5.3.2 不指定 ID ,須要使用 POST 請求
修改數據,須要使用 POST 請求,且 URL 須要添加 _update
條件查詢,須要使用 POST 請求