自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 node.js解析word文档

最近接触了了一个简历管理的项目,需要将简历上传之后解析出里面的字段内容(如姓名、性别、教育经历、工作经历等),存入数据库中。简历的格式都是标准的格式,可参考猎聘下载下来的格式。毫无疑问,第一个难点就是如何解析word的内容。到npm去搜了一下相关的包,都不满足我的需求,直到发现了adm-zip这个包,这个包可以解压缩文件。其实word就是一个压缩包,把word解压后,有一个document...

2019-05-27 14:09:16 6710 2

转载 async/await

ES6中的async/await让Promise变得更加简便,通常await处理的链式Promise会包裹在函数中,返回结果仍然是一个Promise对象。但是当await直接处理链式Promise时,编译器是会返回一个Promise对象等待下次await,还是继续执行Promise对象直到返回结果不再是Promise?测试环境NodeJS v8.7.0测试代码 1 const...

2019-05-23 17:25:10 78

原创 Promise解决回调嵌套问题

前言node.js最大的特色就是利用回调函数的方式来异步执行,但是回调函数的出现引发了回调过度嵌套的问题(回调金字塔),例如a嵌套b,b再嵌套c,c再嵌套D。例如,我们模拟一个页面元素移动的功能,点A移动到B后,B再移动到C,C再移动到D,D再移动到E,使用函数嵌套的方式如下:function movea() { console.log('我是A,我已经移动到B的位置了哦');...

2019-05-23 16:50:42 1973

原创 Promise实现sleep功能

async function test() { for (var i = 0; i < 10; i++) { await sleep(1000); console.log(i); }}function sleep(delay) { return new Promise((resolve, reject) => { ...

2019-05-23 15:37:27 2383

转载 Elasticsearch调优实践

背景Elasticsearch(ES)作为NOSQL+搜索引擎的有机结合体,不仅有近实时的查询能力,还具有强大的聚合分析能力。因此在全文检索、日志分析、监控系统、数据分析等领域ES均有广泛应用。而完整的Elastic Stack体系(Elasticsearch、Logstash、Kibana、Beats),更是提供了数据采集、清洗、存储、可视化的整套解决方案。本文基于ES 5.6.4,...

2019-05-23 15:35:29 435

转载 慢查询日志配置

1、通过修改elasticsearch.yml来启用慢查询:vimelasticsearch.yml###Search Slow Log :查询慢日志配置,日志记录在以“_index_isearch_slowlog.log”结尾的文件中#注:配置不一定都需要,自己选择需要那种级别(warn、info、debug、trace)日志,关闭的话配置成-1 就可以了,注释掉重启也可以...

2019-05-16 16:13:06 440

转载 Mapping设置

Mapping类似于数据库中的表结构定义,主要作用如下:定义Index下字段名(Field Name) 定义字段的类型,比如数值型,字符串型、布尔型等 定义倒排索引的相关配置,比如是否索引、记录postion等需要注意的是,在索引中定义太多字段可能会导致索引膨胀,出现内存不足和难以恢复的情况,下面有几个设置:index.mapping.total_fields.limit:一个索...

2019-05-16 15:45:47 1553

转载 分析器执行顺序与Mapping自定义分析器配置

默认分析器虽然我们可以在字段层级指定分析器,但是如果该层级没有指定任何的分析器,那么我们如何能确定这个字段使用的是哪个分析器呢?分析器可以从三个层面进行定义:按字段(per-field)、按索引(per-index)或全局缺省(global default)。Elasticsearch 会按照以下顺序依次处理,直到它找到能够使用的分析器。索引时的顺序如下:字段映射里定义的analyz...

2019-05-16 15:02:18 186

转载 相关性评分计算原理简介

我们前面已经发现搜索后,每条匹配结果都会有一个_score字段,以以下结果为例:搜索条件为:{ "query": { "match": { "title": "马鲁斯" } }}得到一条结果集为{ "took": 1, "timed_out": false, "_shards": { "total": 1, "s...

2019-05-16 11:34:24 2110

转载 Elasticsearch之四种查询类型和搜索原理

Elasticsearch Client发送搜索请求,某个索引库,一般默认是5个分片(shard)。它返回的时候,由各个分片汇总结果回来。es 在查询时, 可以指定搜索类型为下面四种:  QUERY_THEN_FETCH   QUERY_AND_FEATCH   DFS_QUERY_THEN_FEATCH   DFS_QUERY_AND_FEATCH那么这 4 种搜索类型有什么...

2019-05-16 10:59:53 761

转载 elasticsearch并发问题与锁机制

并发冲突举个例子,比如在电商的场景下,假设我们有个程序,其工作流程为:1.读取商品信息(包含库存,以牙膏为例);2.用户下单购买;3.更新商品库存(库存减一);如果该程序是多线程的,那么总有一个线程是先得到的,假设我们牙膏库存一开始有100件,此时线程A先得到线程将牙膏的库存设置为99件,然后线程B再将牙膏设置为99件,这个时候就已经错了。上面所述问题就是ES中的并发冲突问...

2019-05-16 10:47:33 1130 2

转载 elastic分片交互过程

一、Elasticseach如何将数据存储到分片中问题:当我们要在ES中存储数据的时候,数据应该存储在主分片和复制分片中的哪一个中去;当我们在ES中检索数据的时候,又是怎么判断要查询的数据是属于哪一个分片。 数据存储到分片的过程是一定规则的,并不是随机发生的。 规则:shard=hash(routing)%number_of_primary_shards Ro...

2019-05-16 10:36:31 149

转载 ElasticSearch内部分片处理机制

逆向索引:与传统的数据库不同,在es中,每个字段里面的每个单词都是可以被搜索的。如hobby:”dance,sing,swim,run”,我们在搜索关键字swim时,所有包含swim的文档都会被匹配到,es的这个特性也叫做全文搜索。为了支持这个特性,es中会维护一个叫做“invertedindex”(也叫逆向索引)的表,表内包含了所有文档中出现的所有单词,同时记录了这个单词在哪个文档中出现...

2019-05-16 10:24:50 123

转载 elasticsearch使用7大原则,让你玩转ES

一、 硬件环境选择  如果有条件,尽可能使用SSD硬盘, 不错的CPU。ES的厉害之处在于ES本身的分布式架构以及lucene的特性;IO的提升,会极大改进ES的速度和性能;内存配置方面,一般来说,64G内存的机器节点较佳。  二、系统拓朴设计  ES集群在架构拓朴时,一般都会采用Hot-Warm的架构模式,即设置3种不同类型的节点:Master节点、Hot节点和Warm节点。  ...

2019-05-16 10:02:13 3226

转载 大白话ElasticSearch是什么以及应用场景

ElasticSearch是一个分布式,高性能、高可用、可伸缩的搜索和分析系统看了上面这段话,估计很多人都懵了,这个是啥。我们先从搜索说起,先介绍下面几点1、什么是搜索百度、Google:我们想寻找一个我们喜欢的电影或者书籍就会去百度或者Google搜索一下。互联网搜索:电商搜索商品,招聘网站搜索简历或者岗位IT系统的搜索:员工管理搜索,会议管理搜索2、如果用数据库做搜索会...

2019-05-16 09:48:28 542

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除