繼PHP、Ruby、Python和Perl之後,Elasticsearch最近釋出了Elasticsearch.js,Elasticsearch的JavaScript用戶端庫。可以在Node.js和浏覽器中使用。
安裝node.js子產品
在Node.js項目中使用,隻需用
npm
安裝:
浏覽器
Elasticsearch.js為現代浏覽器準備了建構,可從此處取得。
下載下傳後解壓縮,然後選擇适合你的檔案:
- elasticsearch.jquery.js —— 如果你使用jQuery
- elasticsearch.angual.js —— 如果你使用Angular
- elasticsearch.js —— 其他情況
設定
建立一個
elasticsearch.Client
的新執行個體:
var elasticsearch = require('elasticsearch');
// 使用預設配置連接配接到 localhost:9200
var client = new elasticsearch.Client();
// 連接配接兩個節點,負載均衡使用round-robin算法
var client = elasticsearch.Client({
hosts: [
'elasticsearch1:9200',
'elasticsearch2:9200'
]
});
在浏覽器中設定
Client構造器接受的參數是一樣的,但是不同的建構通路構造器的方式有所不同:
// elasticsearch.js 将 elasticsearch 命名空間加入視窗
var client = elasticsearch.Client({ ... });
// elasticsearch.jquery.js 将 es 命名空間加入 jQuery 對象
var client = jQuery.es.Client({ ... });
// elasticsearch.angular.js 建立 elasticsearch 子產品
// 提供 esFactory
var app = angular.module('app', ['elasticsearch']);
app.service('es', function (esFactory) {
return esFactory({ ... });
});
使用client執行個體調用API
建立了執行個體後調用API就很簡單了。
// 擷取狀态,參數可選,可以隻傳遞一個回調
client.cluster.health(function (err, resp) {
if (err) {
console.error(err.message);
} else {
console.dir(resp);
}
});
// 建立索引
client.index({
index: 'blog',
type: 'post',
id: 1,
body: {
title: 'JavaScript Everywhere!',
content: 'It all started when...',
date: '2013-12-17'
}
}, function (err, resp) {
// ...
});
// 搜尋文檔
client.search({
index: 'users',
size: 50,
body: {
query: {
match: {
profile: 'elasticsearch'
}
}
}
}).then(function (resp) {
var hits = resp.body.hits;
});
Elasticsearch.js以Apache 2.0許可證釋出,源代碼在Github上。
撰文 SegmentFault