繼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