ElasticSearch是一個基於Lucene的搜尋伺服器。它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面。Elasticsearch是用Java開發的,並作為Apache許可條款下的開放原始碼釋出,是第二流行的企業搜尋引擎。設計用於雲端計算中,能夠達到實時搜尋,穩定,可靠,快速,安裝使用方便。
我們建立一個網站或應用程式,並要新增搜尋功能,令我們受打擊的是:搜尋工作是很難的。我們希望我們的搜尋解決方案要快,我們希望有一個零配置和一個完全免費的搜尋模式,我們希望能夠簡單地使用JSON通過HTTP的索引資料,我們希望我們的搜尋伺服器始終可用,我們希望能夠一臺開始並擴充套件到數百,我們要實時搜尋,我們要簡單的多租戶,我們希望建立一個雲的解決方案。Elasticsearch旨在解決所有這些問題和更多的問題。
elasticsearch 跟 MySQL 中定義資料格式的角色關係對照表如下
MySQL | Elasticsearch | 對比 |
Database | Index | 資料庫 |
Table | Type | 表 |
Row | Document | 行 |
Column | Field | 列 |
Schema | Mappping | |
Index | Everything Indexed by default | |
SQL | Query DSL |
//Find tweets that have "elasticsearch" in their body field.
client.search({
index: 'wf_kjbg',
type: 'wf_kjbg',
body: {
query: {
match: {
Title: '計算機'
}
}
}
}).then(function (resp) {
var hits = resp.hits.hits;
}, function (err) {
console.trace(err.message);
});