1. 程式人生 > >ElasticSearch筆記整理(一):簡介、REST與安裝配置

ElasticSearch筆記整理(一):簡介、REST與安裝配置

大數據 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與安裝配置