美文网首页前端技术
Elasticsearch 初探

Elasticsearch 初探

作者: 一俢 | 来源:发表于2019-06-14 09:27 被阅读24次

ElasticSearch 是一个基于 Lucene的 搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,是当前流行的企业级搜索引擎。

这篇文章你会学习到:

  • 安装
  • JavaScript 客户端
  • CRUD
    • 建立连接
    • 创建索引
    • 查询
    • 多文档查询
    • 更新
    • 删除
  • 搜索
  • 集群

安装

  • download
  • run bin/elasticsearch
  • http://localhost:9200/

JavaScript 客户端

npm i elasticsearch
OR
yarn add elasticsearch

CRUD

建立连接

const elasticsearch = require('elasticsearch');

const escClient = new elasticsearch.Client({
    host: 'localhost:9200',
    log: 'trace'
});

escClient.ping({
    requestTimeout: 1000
}, (err) => {
    if(err) {
        console.trace('elasticsearch cluster is down!');
    }
    else {
        console.log('elasticsearch connected:' + err);
    }
});

创建索引

  • rest
// PUT /{index}/{type}/{id}
PUT /hello-users/user/1

{
    "name": "Jay",
    "age": 100,
    "gender": "male"
}
  • node_model: create
escClient.create({
    index: 'hello-users',
    type: 'user',
    id: '1',
    body: {
        name: 'Jay',
        age: 100,
        gender: 'male'
    }
}).then(res => {
    console.log(res);
});

查询

  • rest
// GET /{index}/{type}/{id}
GET /hello-users/user/1
  • node_model: get
escClient.get({
    index: 'hello-users',
    type: 'user',
    id: 1
}).then(res => {
    console.log(res);
});

多文档查询

  • node_model: mget
escClient.mget({
    index: 'hello-users',
    type: 'user',
    body: {
        ids: [1,2,3]
    }
}).then(res => {
    res.docs.forEach(item => {
        console.log(item._source);
    });
})

更新

  • rest: _create
PUT /hello-users/user/1/_create
{

}
  • node_model: update
escClient.update({
    index: 'hello-users',
    type: 'user',
    id: '1',
    body: {
        doc: {
            name: 'Jay',
            age: 98,
            gender: 'male'
        }
    }
}).then(res => {
    console.log(res);
});
  • node_model: insert
escClient.update({
    index: 'hello-users',
    type: 'user',
    id: '2',
    body: {
        doc: {},
        upsert: {
            gender: 'female',
            name: 'Mini',
            age: 90
        }
    }
}).then(res => {
    console.log(res);
});

删除

  • rest: delete
// DELETE /{index}/{type}/{id}
DELETE /hello-users/user/1
  • node_model: delete
escClient.delete({
    index: 'hello-users',
    type: 'user',
    id: '1'
});

搜索

TODO:

集群

TODO:

〖坚持的一俢〗

相关文章

  • ElasticSearch初探

    本文仅对elasticSearch(ES)进行初步介绍,有不足与错误之处欢迎指正。本文仅介绍了ES某些特性,希望能...

  • Elasticsearch初探

    Elasticsearch安装 读者可以参考:Downloads Elasticsearch 下载 启动 遇到的一...

  • Elasticsearch 初探

    ElasticSearch 是一个基于 Lucene的 搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基...

  • ElasticSearch初探

    一、单机版ElasticSearch 对于基于 RedHat 的发行版,在 /etc/yum.repos.d/ 目...

  • Elasticsearch初探

    Elasticsearch是什么 Elasticsearch是一个基于Apache Lucene(TM)的一个分布...

  • ElasticSearch--初探

    介绍 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基...

  • Spark On ElasticSearch初探

    一、写在前面 ElasticSearch 是一个快速索引检索的库。在实践中,我们用Hbase 存储海量业务数据,再...

  • 搜索与分析引擎——Elasticsearch新版官方Java C

    在我的博客《搜索与分析引擎——Elasticsearch之初探与实践》中,我分享了从如何安装ES到使用Java T...

  • 初探 Elasticsearch Index Template(

    索引模板,简而言之,是一种复用机制,就像一些项目的开发框架如 Laravel 一样,省去了大量的重复,体力劳动。当...

  • elasticsearch terms aggs初探

    通过elasticsearch的aggs,就可以方便的对数据进行初步的统计。比如结合terms的bucket。就可...

网友评论

    本文标题:Elasticsearch 初探

    本文链接:https://www.haomeiwen.com/subject/pvayfctx.html