草庐IT

ES Modules 中的 __dirname 和 __filename

ESModules中的__dirname和__filename.png模块化发展早期,前端这块没有模块化系统,而Node.js需要模块化所以只能一直使用CommonJS标准凑合着,后来ECMAScript委员会通过了ESModules标准。CommonJS的处境就比较尴尬了,时至今日无论用JS来写前后端ESModules都已经成为了标配。ESModules遇到了问题CommonJS中提供的全局变量如require,exports,module.exports,__filename,__dirname等,在ESModules环境中均是不可用的,require,exports,module.exp

es字段查询加keyword和不加keyword的区别

在ES(Elasticsearch)中,查询字段名后面加上"keyword"和不加"keyword"有着不同的含义和用途。当字段名后面加上"keyword"时,表示该字段是一个keyword类型的字段。Keyword类型的字段会将文本作为一个整体进行索引和搜索,不会进行分词。这意味着,如果你想要精确匹配某个特定的值,或者进行排序、聚合等操作,通常会使用keyword类型的字段。而当字段名后面不加"keyword"时,默认情况下,该字段会被当作text类型的字段。Text类型的字段会进行分词,将文本拆分成一个个词项进行索引和搜索。这样可以实现更灵活的搜索,例如模糊匹配、全文搜索等。总结来说,加上

es 嵌套对象查询

文章目录基础环境嵌套查询的问题使用nested类型joinnestedvsjoin基础环境使用docker来搭建环境(es+kibana)docker-compose.yaml可以使用https://github.com/xieruixiang/study_config/blob/master/docker/es_kibana/docker-compose.yaml中的后续的操作都在kibana中进行嵌套查询的问题下面的例子通过PUTorder创建表结构,POSTorder/_doc/10001填充表数据,goods使用es的自动类型推断,且是由多个对象组成GETorder/_search是想

CommonJs规范和ES 模块系统

一、CommonJs规范CommonJS是一种模块化规范,用于在JavaScript应用程序中组织和管理代码的模块。它定义了模块的导入和导出机制,使得开发者可以将代码分割成可复用的模块,并在不同的文件中引用和使用这些模块。CommonJS规范有以下几个主要特点和用途:模块化组织代码:CommonJS允许将代码按功能或逻辑分类成独立的模块,每个模块只负责特定的功能,使代码更加可维护和可复用。隔离命名空间:每个模块都有自己独立的作用域,不会与其他模块中的变量和函数冲突,有效避免命名冲突。代码加载管理:CommonJS规范提供了模块的加载和缓存机制,可以确保模块只会被加载一次,避免重复加载和执行,提

elasticsearch——ES集群分片不平衡处理

在使用云上的一个ES集群的时候,发现搜索性能很差,查看分片情况,发现ES有12个节点,索引创建了10个分片,1个副本,最后20个分片全在其中3个节点上,分布不均衡,实际只消耗了3个节点的资源,所以性能很差,再次创建新的索引,发现仍然是这种情况,最后通过下面的命令查到集群reblance属性是noneGET_cluster/settings参考:https://www.jianshu.com/p/a81ca31bb316使用下面的命令恢复平衡PUT_cluster/settings{ "persistent":{ "cluster.routing.rebalance.enable":"all"

java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options es启动出错(解决)

今天重新搭建es的时候出现这个问题  以及给相关的文件夹权限但是还是不可以。这里提供一个解决问题的方法。解决思路:    放弃自动挂载,采用手动进行将容器内的文件粘贴出来。问题解决1、直接运行esdockerrun-d--nameelasticsearch-p9200:9200-p9300:9300-e"discovery.type=single-node"elasticsearch:7.6.0发现可以正常运行并正常访问端口号(开放端口号)2、拷贝es容器文件夹config到宿主机目录dockercpelasticsearch:/usr/share/elasticsearch/config自己

[ES]二基础 |

一、索引库操作1、mapping属性mapping是对索引库中文档的约束,常见的mapping属性包括:1)type:字段数据类型,常见的简单类型有:①字符串:text(可分词的文本)、keyword(精确值,如品牌、国家、ip等不拆分的数据,这种拆分没意义)②数值:long、integer、short、byte、double、float(es的底层是用java实现的,所以和java一致)③boolean④date⑤object对象,对象可以任意嵌套,对象的子属性可以参与搜索注:es没有数组,但是允许每个类型有多个值2)index:是否创建倒排索引默认为true(创建),为所有的字段都创建倒排

ES6-ES11最通俗易懂保姆级的笔记!人见人爱,花见花开。赶快动起你发财的小手收藏起来吧,满满的干货,你值得拥有!!

1. ES61.1  let变量声明以及声明特性声明变量leta;letb,c,e;letf=100,g="红石榴21",h=[];特性:变量不能重复声明letstart="许巍";letstart="刀郎";//报错块级作用域全局、函数、eval{letstr="红石榴21"}console.log(str);//strisnotdefined不仅仅针对花括号,ifelsewhilefor中都是块级作用域不存在变量提升console.log(song);letsong="罗刹海市";//Cannotaccess'song'beforeinitialization不影响作用域链{letscho

es(Elasticsearch)介绍

学习es可以参考mysql(相比mysql而言,es所需的cpu、内存更多) 什么是Elasticsearch Elasticsearch简称es,是由Elastic和search组成。Elastic的意思是有弹性的,search的意思是搜索。弹性:es是一个天生支持分布式,不需要借助zk等其他的三方组件就能实现的分布式,理论上讲可以无限进行扩容搜索:es是一个搜索引擎。(和mysql的搜索区分开)。es是一个由java开发的,借助qpi提供服务mysql是关系型数据库,每个表中的一些字段都有关联,数据库三大范式。所以mysql更适合做业务相关的关联查询。而es是非关系型数据库,更擅长做搜索 

关于ES多磁盘目录

测试提到给ES配置了许多数据存储目录,但是在实测当中发现数据基本上只往其中一块盘去写数据(监控了磁盘读写速率),询问是否可以并发写以便提高性能。此前,我给ES配置多个数据目录(path.data)主要是为了增大存储上限,如果机器上配备有RAID卡直接使用存储卡做raid0的单一大目录就十分便捷,无需考虑多目录的问题了。对测试遇到的问题试验及查证如下:一个shard只会分配在一个物理目录上面,它不会再被切分存储到多个目录盘上单索引具有足够的分片时,数据会写到多个盘(分片数>data节点数)所以,多目录在一般情况下没有并发写的效果,多磁盘推荐使用raid0,磁盘I/O可以均匀分布到所有磁盘。查证官