作者:手机用户2602903963 | 来源:互联网 | 2024-10-09 18:40
继PHP、Ruby、Python和Perl以后,Elasticsearch近来宣布了Elasticsearch.js,Elasticsearch的JavaScript客户端库。能够
继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