node.js + @elastic/elasticsearch 操作elasticsearch数据库

2024-04-25 18:04

本文主要是介绍node.js + @elastic/elasticsearch 操作elasticsearch数据库,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我这边node.js 使用的是 koa2,elasticsearch是8.11.1版本

官网:https://www.elastic.co/guide/en/elasticsearch/client/javascript-api/current/getting-started-js.html

一、@elastic/elasticsearch 连接 elasticsearch数据库
如果elasticsearch没有设置账号秘密 则auth就不需要了

const { Client } = require('@elastic/elasticsearch');
this.elastic = new Client({node: 'http://localhost:9200',auth: {username: 'xm',password: '123'  }
});// 另一个写法
const elastic = new Client({node: 'https://username:password@localhost:9200'
})

二、基础操作

1、创建
1)创建一条信息

this.elastic.index({index: 'testes',id: '20240425-01',body: {name: 'xiaoming',age: 22}
})

创建一条信息,id不填 系统会自动补全
注意:index 只能是小写,不能大写,否则会报错,可以 ‘test-es’命名
在这里插入图片描述

2)批量创建

await this.elastic.indices.create({index: 'tweets',operations: {mappings: {properties: {id: { type: 'integer' },text: { type: 'text' },user: { type: 'keyword' },time: { type: 'date' }}}}
}, { ignore: [400] })
const dataset = [{id: 1,text: 'If I fall, don\'t bring me back.',user: 'jon',time: new Date()},{id: 2,text: 'Winter is coming',user: 'ned',time: new Date()},{id: 3,text: 'A Lannister always pays his debts.',user: 'tyrion',time: new Date()},{id: 4,text: 'I am the blood of the dragon.',user: 'daenerys',time: new Date()},{id: 5, // change this value to a string to see the bulk response with errorstext: 'A girl is Arya Stark of Winterfell. And I\'m going home.',user: 'arya',time: new Date()}
]const operations = dataset.flatMap(doc => [{ index: { _index: 'tweets' } }, doc])const bulkResponse = await this.elastic.bulk({ refresh: true, operations })
const count = await this.elastic.count({ index: 'tweets' })
console.log(count)

等同于

await this.elastic.bulk({refresh: true,operations: [// operation to perform{ index: { _index: 'game-of-thrones' } },// the document to index{character: 'Ned Stark1',quote: 'Winter is coming1.'},{ index: { _index: 'game-of-thrones' } },{character: 'Daenerys Targaryen2',quote: 'I am the blood of the dragon2.'},{ index: { _index: 'game-of-thrones' } },{character: 'Tyrion Lannister3',quote: 'A mind needs books like a sword needs a whetstone3.'}]
});

根据官网来看,bulk其实就是批量操作,这里也可以 update、delete 等等
在这里插入图片描述

2、删除
1)删除单个

this.elastic.delete({index: 'testes',id: '20240425-01'
});

2)按条件删除,会删除符合条件的所有数据

this.elastic.deleteByQuery({index: 'tweets',query: {match: {user: 'tyrion'}}
})

在这里插入图片描述

3、更新操作

await this.elastic.update({index: 'tweets',id: 'QK5KE48BTvD5VO_sox9p',doc: {text: '111',user: '222'}
});
const document = await this.elastic.get({index: 'tweets',id: 'QK5KE48BTvD5VO_sox9p'
});

在这里插入图片描述

在这里插入图片描述

4、查询操作

1)单个查询,根据 index 和 id精准查询

const document = await this.elastic.get({index: 'tweets',id: 'QK5KE48BTvD5VO_sox9p'
});

2)查询所有,查询 index 为 testes 的所有数值

this.elastic.search({index: 'testes'
})

3)search 混合查询

GET /cartest/_search
{"size": 10,"from": 0,"query":{"bool":{"must":[{"match":{"say": "33333"}},{"regexp": {"name": ".*云.*" }},{"range": {"num": {"gte": 120,"lte": 200}}}]}}
}

在这里插入图片描述

具体查询大家可以看我这个文章:query 中的内容大致都是一致的

https://blog.csdn.net/weixin_44384273/article/details/137920183?spm=1001.2014.3001.5501

这篇关于node.js + @elastic/elasticsearch 操作elasticsearch数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935399

相关文章

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme

C#连接SQL server数据库命令的基本步骤

《C#连接SQLserver数据库命令的基本步骤》文章讲解了连接SQLServer数据库的步骤,包括引入命名空间、构建连接字符串、使用SqlConnection和SqlCommand执行SQL操作,... 目录建议配合使用:如何下载和安装SQL server数据库-CSDN博客1. 引入必要的命名空间2.

Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式

《Java通过驱动包(jar包)连接MySQL数据库的步骤总结及验证方式》本文详细介绍如何使用Java通过JDBC连接MySQL数据库,包括下载驱动、配置Eclipse环境、检测数据库连接等关键步骤,... 目录一、下载驱动包二、放jar包三、检测数据库连接JavaJava 如何使用 JDBC 连接 mys

Java操作Word文档的全面指南

《Java操作Word文档的全面指南》在Java开发中,操作Word文档是常见的业务需求,广泛应用于合同生成、报表输出、通知发布、法律文书生成、病历模板填写等场景,本文将全面介绍Java操作Word文... 目录简介段落页头与页脚页码表格图片批注文本框目录图表简介Word编程最重要的类是org.apach

Python实现对阿里云OSS对象存储的操作详解

《Python实现对阿里云OSS对象存储的操作详解》这篇文章主要为大家详细介绍了Python实现对阿里云OSS对象存储的操作相关知识,包括连接,上传,下载,列举等功能,感兴趣的小伙伴可以了解下... 目录一、直接使用代码二、详细使用1. 环境准备2. 初始化配置3. bucket配置创建4. 文件上传到os

mysql表操作与查询功能详解

《mysql表操作与查询功能详解》本文系统讲解MySQL表操作与查询,涵盖创建、修改、复制表语法,基本查询结构及WHERE、GROUPBY等子句,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随... 目录01.表的操作1.1表操作概览1.2创建表1.3修改表1.4复制表02.基本查询操作2.1 SE

MySQL数据库中ENUM的用法是什么详解

《MySQL数据库中ENUM的用法是什么详解》ENUM是一个字符串对象,用于指定一组预定义的值,并可在创建表时使用,下面:本文主要介绍MySQL数据库中ENUM的用法是什么的相关资料,文中通过代码... 目录mysql 中 ENUM 的用法一、ENUM 的定义与语法二、ENUM 的特点三、ENUM 的用法1

Java中调用数据库存储过程的示例代码

《Java中调用数据库存储过程的示例代码》本文介绍Java通过JDBC调用数据库存储过程的方法,涵盖参数类型、执行步骤及数据库差异,需注意异常处理与资源管理,以优化性能并实现复杂业务逻辑,感兴趣的朋友... 目录一、存储过程概述二、Java调用存储过程的基本javascript步骤三、Java调用存储过程示

Go语言数据库编程GORM 的基本使用详解

《Go语言数据库编程GORM的基本使用详解》GORM是Go语言流行的ORM框架,封装database/sql,支持自动迁移、关联、事务等,提供CRUD、条件查询、钩子函数、日志等功能,简化数据库操作... 目录一、安装与初始化1. 安装 GORM 及数据库驱动2. 建立数据库连接二、定义模型结构体三、自动迁

嵌入式数据库SQLite 3配置使用讲解

《嵌入式数据库SQLite3配置使用讲解》本文强调嵌入式项目中SQLite3数据库的重要性,因其零配置、轻量级、跨平台及事务处理特性,可保障数据溯源与责任明确,详细讲解安装配置、基础语法及SQLit... 目录0、惨痛教训1、SQLite3环境配置(1)、下载安装SQLite库(2)、解压下载的文件(3)、