天天看點

Elasticsearch.js 釋出 —— 在Node.js和浏覽器中調用Elasticsearch

繼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