继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

最新文章

  1. target-densitydpi
  2. a.redhat系统如何卸载默认jdk
  3. 1.本周的作业请参照此文:http://www.ruanyifeng.com/blog/2015/12/git-workflow.html 制定本组项目的GitHub版本更新流程---答题者:徐潇瑞
  4. JTMz换路径导致MySQL服务不能启动的问题
  5. Linux su和sudo命令的区别,并获得root权限
  6. Qlikview 图标控件实现动态分组
  7. Xcode 遇到 App Transport Security has blocked a cleartext HTTP 错误
  8. Batman+joker乱谈
  9. JavaWeb之 JSP基础
  10. Microchip 125 kHz RFID System Design Guide
  11. JQuery和UpdatePannel的问题
  12. JSON 数字排序 多字段排序
  13. CSS3之3D效果中的transform运用
  14. Python入门代码练习
  15. 在浏览器中运行Keras模型,并支持GPU
  16. 题解 P1601 【A+B Problem(高精)】
  17. CentOS7上手动部署入门级kubernetes
  18. [ZOJ 4020] Traffic Light
  19. 记录flask使用模板时出现的“Internal Server Error”错误
  20. jQuery $('div>ul') $('div ul'

热门文章

  1. error: No implicit Ordering defined for Any
  2. ]flexslider 中文文档 使用教程 参数手册
  3. Modify the server ports
  4. [转]ODBC编程指南
  5. CStringArray序列化处理
  6. MySQL--执行mysql脚本及其脚本编写
  7. iOS开发之--获取验证码倒计时及闪烁问题解决方案
  8. Python学习笔记14—模块
  9. LeetCode-Water and Jug Problem
  10. Angular2+学习第2篇 cli 环境搭建过程