ElasticSearch筆記整理(一):簡介、REST與安裝配置
阿新 • • 發佈:2018-04-10
大數據 ElasticSearch ELK [TOC]
ElasticSearch簡介
ElasticSearch是一款基於Apache Lucene構建的開源搜索引擎,它采用Java編寫並使用Lucene構建索引、提供搜索功能,ElasticSearch的目標是讓全文搜索變得簡單,開發者可以通過它簡單明了的RestFul API輕松地實現搜索功能,而不必去面對Lucene的復雜性。ES能夠輕松的進行大規模的橫向擴展,以支撐PB級的結構化和非結構化海量數據的處理。
一言以蔽之:ElasticSearch是一款基於Lucene的實時分布式搜索和分析引擎。 ElasticSearch設計主要用於雲計算中,能夠達到實時搜索、穩定、可靠、快速,安裝使用也非常方便。
官網:www.elastic.co
關於ElasticSearch的小故事: Shay Banon認為自己參與Lucene完全是一種偶然,當年他還是一個待業工程師,跟隨自己的新婚妻子來到倫敦, 妻子想在倫敦學習做一名廚師,而自己則想為妻子開發一個方便搜索菜譜的應用,所以才接觸到Lucene。 直接使用Lucene構建搜索有很多問題,包含大量重復性的工作,所以Shay便在Lucene的基礎上不斷地進行抽象, 讓Java程序嵌入搜索變得更容易,經過一段時間的打磨便誕生了他的第一個開源作品“Compass”,中文即“指南針” 的意思。之後,Shay找到了一份面對高性能分布式開發環境的新工作,在工作中他漸漸發現越來越需要一個易用的、 高性能、實時、分布式搜索服務,於是他決定重寫Compass,將它從一個庫打造成了一個獨立的server,並將其改名為Elasticsearch。
ES和Solr對比
接口
類似webservice的接口
REST風格的訪問接口
分布式存儲
solrCloud solr4.x才支持
es是為分布式而生的
支持的格式
solr xml json
es json
近實時搜索
ES和MySQL對比
MySQL | ElasticSearch |
---|---|
database(數據庫) | index(索引庫) |
table(表) | type(類型) |
row(行) | document(文檔) |
column(列) | field(字段) |
REST簡介
REST簡介(一):概述
REST全稱Representational State Transfer。是一種軟件的架構風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用於客戶端和服務器交互類的軟件。基於這個風格設計的軟件可以更簡潔,更有層次,更易於實現緩存等機制。
其實說白了就是類似HTTP的訪問,和HTTP非常的相似。
REST操作:
GET:獲取對象的當前狀態;
PUT:改變對象的狀態;
POST:創建對象;
DELETE:刪除對象;
HEAD:獲取頭信息。
REST簡介(二):Rest具體操作說明
資源 | 一組資源的URI,比如:http://example.com/res/ | 單個資源的URI,比如:http://example.com/res/123 |
---|---|---|
GET | 列出URI,以及該資源組中每個資源的詳細信息(後者可選) | 獲取指定的資源的詳細信息,格式可以自選一個合適的網絡媒體類型(比如:XML、JSON等) |
PUT | 使用給定的一組資源替換當前整組資源 | 替換/創建指定的資源。並將其追加到相應的資源組中。 |
POST | 在本組資源中創建/追加一個新的資源。該操作往往返回新的URL | 把指定的資源當做一個資源組,並在其下創建/追加一個新的元素,使其隸屬於當前資源。 |
DELETE | 刪除整組資源 | 刪除指定的元素 |
REST簡介(三):ES內置REST接口
URL | 描述 |
---|---|
/index/_search | 搜索指定索引下的數據 |
/_aliases | 獲取或操作索引的別名 |
/index/ | 查看指定索引的詳細信息 |
/index/type/ | 創建或操作類型 |
/index/_mapping | 創建或操作mapping |
/index/_setting | 創建或操作設置(number_of_shards是不可更改的) |
/index/_open | 打開指定被關閉的索引 |
/index/_close | 關閉指定索引 |
/index/_refresh | 刷新索引(使新加內容對搜索可見,不保證數據被寫入磁盤) |
/index/flush | 刷新索引(會觸發Lucene提交) |
ElasticSearch安裝配置
安裝配置
註意:只能安裝在普通用戶下面,不能安裝的root用戶下面。
unzip elasticsearch-2.3.0.zip -d ../解壓到指定目錄
配置config/elasticsearch.yml
cluster.name: bigdata-08-28
node.name: hadoop
path.data: /home/uplooking/data/elasticsearch
path.logs: /home/uplooking/logs/elasticsearch
network.host: uplooking01
啟動:
$ELASTICSEARCH_HOME/bin/elasticsearch -d
驗證:
訪問es的安裝服務器,http://<es_ip>:9200
配置文件說明
logging.yml
日誌配置文件,es也是使用log4j來記錄日誌的,所以logging.yml裏的設置按普通log4j配置來設置就行了。
elasticsearch.yml
es的基本配置文件,需要註意的是key和value的格式“:”之後需要一個空格。
修改如下配置之後,就可以從別的機器上進行訪問了
Transport.tcp.port:9300 設置節點間交互的tcp端口,默認為9300
ElasticSearch筆記整理(一):簡介、REST與安裝配置