您好,登錄后才能下訂單哦!
[TOC]
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。
接口
類似webservice的接口
REST風格的訪問接口
分布式存儲
solrCloud solr4.x才支持
es是為分布式而生的
支持的格式
solr xml json
es json
近實時搜索
MySQL | ElasticSearch |
---|---|
database(數據庫) | index(索引庫) |
table(表) | type(類型) |
row(行) | document(文檔) |
column(列) | field(字段) |
REST全稱Representational State Transfer。是一種軟件的架構風格,而不是標準,只是提供了一組設計原則和約束條件。它主要用于客戶端和服務器交互類的軟件。基于這個風格設計的軟件可以更簡潔,更有層次,更易于實現緩存等機制。
其實說白了就是類似HTTP的訪問,和HTTP非常的相似。
REST操作:
GET:獲取對象的當前狀態;
PUT:改變對象的狀態;
POST:創建對象;
DELETE:刪除對象;
HEAD:獲取頭信息。
資源 | 一組資源的URI,比如:http://example.com/res/ | 單個資源的URI,比如:http://example.com/res/123 |
---|---|---|
GET | 列出URI,以及該資源組中每個資源的詳細信息(后者可選) | 獲取指定的資源的詳細信息,格式可以自選一個合適的網絡媒體類型(比如:XML、JSON等) |
PUT | 使用給定的一組資源替換當前整組資源 | 替換/創建指定的資源。并將其追加到相應的資源組中。 |
POST | 在本組資源中創建/追加一個新的資源。該操作往往返回新的URL | 把指定的資源當做一個資源組,并在其下創建/追加一個新的元素,使其隸屬于當前資源。 |
DELETE | 刪除整組資源 | 刪除指定的元素 |
URL | 描述 |
---|---|
/index/_search | 搜索指定索引下的數據 |
/_aliases | 獲取或操作索引的別名 |
/index/ | 查看指定索引的詳細信息 |
/index/type/ | 創建或操作類型 |
/index/_mapping | 創建或操作mapping |
/index/_setting | 創建或操作設置(number_of_shards是不可更改的) |
/index/_open | 打開指定被關閉的索引 |
/index/_close | 關閉指定索引 |
/index/_refresh | 刷新索引(使新加內容對搜索可見,不保證數據被寫入磁盤) |
/index/flush | 刷新索引(會觸發Lucene提交) |
注意:只能安裝在普通用戶下面,不能安裝的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
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。