继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

Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch(1)的更多相关文章

  1. Elasticsearch.js 发布 —— 在Node.js和浏览器中调用Elasticsearch

    继PHP.Ruby.Python和Perl之后,Elasticsearch最近发布了Elasticsearch.js,Elasticsearch的JavaScript客户端库.可以在Node.js和浏 ...

  2. Node.js学习笔记——Node.js开发Web后台服务

    一.简介 Node.js 是一个基于Google Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高效.Node.j ...

  3. Node.js入门:Node.js&NPM的安装与配置

    Node.js安装与配置      Node.js已经诞生两年有余,由于一直处于快速开发中,过去的一些安装配置介绍多数针对0.4.x版本而言的,并非适合最新的0.6.x的版本情况了,对此,我们将在0. ...

  4. 基于 Koa.js 平台的 Node.js web 快速开发框架KoaHub.js demo 可安装

    KoaHub.js demo KoaHub.js KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Fu ...

  5. KoaHub.js是基于 Koa.js 平台的 Node.js web 快速开发框架

    koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...

  6. KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架之koahub-yilianyun

    koahub-yilianyun 微信易联云打印机接口 koahub-yilianyun易联云打印机node接口 Installation $ npm install koahub-yilianyun ...

  7. js判断是否是在微信浏览器中打开

    // js判断是否是在微信浏览器中打开 function is_weixn(){ var ua = navigator.userAgent.toLowerCase(); if(ua.match(/Mi ...

  8. 【Node.js】利用node.js搭建服务器并访问静态网页

    node.js是一门服务端的语言,下面讲讲如何利用node.js提供给我们的api来搭建服务器,并且访问静态网页 项目结构如下 ------------------------------------ ...

  9. 【Node.js】3.Node.js和commomJS规范

    来源:http://javascript.ruanyifeng.com/ 目录 概述 module对象 module.exports属性 exports变量 AMD规范与CommonJS规范的兼容性 ...

随机推荐

  1. Centsos7修改密码

    CentOS 7.0 进入单用户模式修改Root密码 时间:2017-05-02 01:10来源:blog.csdn.net  作者:海哥_大大的Java 举报   点击:506次 一.启动时,随便按 ...

  2. SSIS 自测题-数据流控件类

    说明:以下是自己的理解答案,不是标准的答案,如有不妥烦请指出.         有些题目暂时没有答案,有知道的请留言,互相学习,一起进步. 133.请描述一下 Conditional Split 的使 ...

  3. C++ 运算符重载一(二元运算符重载)

    //二元运算符重载 #include<iostream> using namespace std; class Point { public: Point(int x,int y){ th ...

  4. 006Maven_在Myeclipse创建java项目

    第一步:

  5. Statement和PreparedStatement都是用来发送和执行SQL语句的

    Statement和PreparedStatement都是用来发送和执行SQL语句的 DriverManager管理一组驱动程序

  6. Python零碎(一)

    Python中的__name__和__main__含义详解 在写Python代码和看Python代码时,我们常常可以看到这样的代码: def main(): ...... if __name == & ...

  7. measure layout onMeasure() onLayout()

    1.onMeasure() 在这个函数中,ViewGroup会接受childView的请求的大小,然后通过childView的 measure(newWidthMeasureSpec, heightM ...

  8. 使用js里面的迭代器filter实现数组去重

    实现数组去重的方法很多,最原始的方法是一个值一个值的去遍历,写到空数组里面: let r=[],arr = ['a', 'b', 'c', 'a']; for(var i=0,len=arr.leng ...

  9. 76、android:supportsRtl 和 android:layout_marginEnd

    android4.2(SDK版本为17)有一个新特性 layoutRtl,当然是对于开发者而言的,主要是方便开发者去支持阿拉伯语/波斯语等阅读习惯是从右往左的. 可以在manifest的applica ...

  10. GO项目目录

    |--bin |--pkg |--src 其中,bin存放编译后的可执行文件:pkg存放编译后的包文件:src存放项目源文件.一般,bin和pkg目录可以不创建,go命令会自动创建(如 go inst ...