前端技术

Elasticsearch 初探

2019-06-14  本文已影响24人  一俢

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

这篇文章你会学习到:

安装

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);
    }
});

创建索引

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

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

查询

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

多文档查询

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

更新

PUT /hello-users/user/1/_create
{

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

删除

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

搜索

TODO:

集群

TODO:

〖坚持的一俢〗

上一篇下一篇

猜你喜欢

热点阅读