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