继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上。
本文转载自:https://segmentfault.com/a/1190000000369962
扫描二维码关注公众号,回复:
1427257 查看本文章