1 Smart_cxr

尚未进行身份认证

没伞的孩子,必须努力奔跑!!

等级
博文 159
排名 3w+

Spark RDD及编程接口

1.介绍对于一个Spark程序而言,一般情况下RDD操作之间的关系图如下所示,经过输入(创建)操作,转换操作,输出操作(action操作)来完成一个作业。2.SparkRDDRDD是弹性分布式数据集,即一个RDD代表了一个被分区的只读数据集,RDD可以通过两种方式生成,一种是来自内部或者外部的存储系统,另一种是通过转换操作(transform)来自其他的RDD,比如Map、fil...

2019-03-19 22:11:27

第9条:覆盖equals时总要覆盖hashCode

importjava.util.HashMap;importjava.util.Map;publicfinalclassPhoneNumber{ privatefinalshortareaCode; privatefinalshortprefix; privatefinalshortlineNumber; publicPhoneNumber(in...

2018-12-27 15:33:27

Elasticsearch多shard场景下relevance score不准确问题

1、多shard场景下relevancescore不准确问题大揭秘如果你的一个index有多个shard的话,可能搜索结果会不准确图解2、如何解决该问题?(1)生产环境下,数据量大,尽可能实现均匀分配数据量很大的话,其实一般情况下,在概率学的背景下,es都是在多个shard中均匀路由数据的,路由的时候根据_id,负载均衡比如说有10个document,title都包含j...

2018-12-02 17:48:59

ElasticSearch的segment merge操作

每秒一个segmentfile,文件过多,而且每次search都要搜索所有的segment,很耗时默认会在后台执行segmentmerge操作,在merge的时候,被标记为deleted的document也会被彻底物理删除每次merge操作的执行流程(1)选择一些有相似大小的segment,merge成一个大的segment(2)将新的segmentflush到磁盘上去(3)...

2018-12-01 09:42:51

Elasticsearch的写入优化

再次优化的写入流程(1)数据写入buffer缓冲和translog日志文件(2)每隔一秒钟,buffer中的数据被写入新的segmentfile,并进入oscache,此时segment被打开并供search使用(3)buffer被清空(4)重复1~3,新的segment不断添加,buffer不断被清空,而translog中的数据不断累加(5)当translog长度达到一定程度的时...

2018-11-29 22:30:18

Elasticsearch的NRT优化,近实时查询

现有流程的问题,每次都必须等待fsync将segment刷入磁盘,才能将segment打开供search使用,这样的话,从一个document写入,到它可以被搜索,可能会超过1分钟!!!这就不是近实时的搜索了!!!主要瓶颈在于fsync实际发生磁盘IO写数据进磁盘,是很耗时的。写入流程别改进如下:(1)数据写入buffer(2)每隔一定时间,buffer中的数据被写入segment文件,...

2018-11-29 22:17:48

Elasticsearch的document增删改原理

(1)数据写入buffer(2)commitpoint(3)buffer中的数据写入新的indexsegment(4)等待在oscache中的indexsegment被fsync强制刷到磁盘上(5)新的indexsgement被打开,供search使用(6)buffer被清空每次commitpoint时,会有一个.del文件,标记了哪些segment中的哪些documen...

2018-11-29 22:11:01

Elasticsearch的倒排索引结构

倒排索引,是适合用于进行搜索的倒排索引的结构(1)包含这个关键词的documentlist(2)包含这个关键词的所有document的数量:IDF(inversedocumentfrequency)(3)这个关键词在每个document中出现的次数:TF(termfrequency)(4)这个关键词在这个document中的次序(5)每个document的长度:length...

2018-11-29 21:39:24

Elasticsearch的零停机重建索引

1、重建索引一个field的设置是不能被修改的,如果要修改一个Field,那么应该重新按照新的mapping,建立一个index,然后将数据批量查询出来,重新用bulkapi写入index中批量查询的时候,建议采用scrollapi,并且采用多线程并发的方式来reindex数据,每次scoll就查询指定日期的一段数据,交给一个线程即可(1)一开始,依靠dynamicmapping...

2018-11-29 21:37:08

Elasticsearch的dynamic策略

1、定制dynamic策略true:遇到陌生字段,就进行dynamicmappingfalse:遇到陌生字段,就忽略strict:遇到陌生字段,就报错PUT/my_index{ "mappings":{  "my_type":{   "dynamic":"strict",//设置了strict,添加字段报错   "prop...

2018-11-29 21:19:16

Elasticsearch的索引管理

1、rootobject就是某个type对应的mappingjson,包括了properties,metadata(_id,_source,_type),settings(analyzer),其他settings(比如include_in_all)PUT/my_index{ "mappings":{  "my_type":{   "properties":...

2018-11-29 20:58:27

Elasticsearch的type数据结构

type,是一个index中用来区分类似的数据的,类似的数据,但是可能有不同的fields,而且有不同的属性来控制索引建立、分词器field的value,在底层的lucene中建立索引的时候,全部是opaquebytes类型,不区分类型的lucene是没有type的概念的,在document中,实际上将type作为一个document的field来存储,即_type,es通过_type来进行...

2018-11-29 20:50:58

Elasticsearch的query phase和fetch phase

1、queryphase(1)搜索请求发送到某一个coordinatenode,构构建一个priorityqueue,长度以paging操作from和size为准,默认为10(2)coordinatenode将请求转发到所有shard,每个shard本地搜索,并构建一个本地的priorityqueue(3)各个shard将自己的priorityqueue返回给coordinat...

2018-11-28 21:22:11

Elasticsearch的算法介绍

1、算法介绍relevancescore算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度Elasticsearch使用的是termfrequency/inversedocumentfrequency算法,简称为TF/IDF算法Termfrequency:搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,就越相关搜索请求:h...

2018-11-28 21:09:16

Elasticsearch的filter与query性能

1、filter与query示例PUT/company/employee/2{ "address":{  "country":"china",  "province":"jiangsu",  "city":"nanjing" }, "name":"tom", "age

2018-11-27 22:29:04

Elasticsearch什么是mapping、数据类型以及dynamic mapping

(1)往es里面直接插入数据,es会自动建立索引,同时建立type以及对应的mapping(2)mapping中就自动定义了每个field的数据类型(3)不同的数据类型(比如说text和date),可能有的是exactvalue,有的是fulltext(4)exactvalue,在建立倒排索引的时候,分词的时候,是将整个值一起作为一个关键词建立到倒排索引中的;fulltext,会经历...

2018-11-27 21:39:02

Elasticsearch的分词器

1、什么是分词器切分词语,normalization(提升recall召回率)给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换),分瓷器recall,召回率:搜索的时候,增加能够搜索到的结果的数量characterfilter:在一段文本进行分词之前,先进行预处理,比如说最常见的就是,过滤html标签(&lt...

2018-11-27 21:21:28

Elasticsearch的倒排索引的核心原理

例如:doc1:Ireallylikedmysmalldogs,andIthinkmymomalsolikedthem.doc2:Heneverlikedanydogs,soIhopethatmymomwillnotexpectmetolikedhim.分词,初步的倒排索引的建立word doc1 doc2I ...

2018-11-26 23:04:34

Elasticsearch的全文检索

1、exactvalue2017-01-01,exactvalue,搜索的时候,必须输入2017-01-01,才能搜索出来如果你输入一个01,是搜索不出来的2、fulltext(1)缩写vs.全程:cnvs.china(2)格式转化:likelikedlikes(3)大小写:Tomvstom(4)同义词:likevslove2017-01-01,2...

2018-11-26 22:48:13

Elasticsearch的query string的基础语法和query string分词

1、querystring基础语法GET/test_index/test_type/_search?q=test_field:testGET/test_index/test_type/_search?q=+test_field:testGET/test_index/test_type/_search?q=-test_field:test一个是掌握q=field:search...

2018-11-26 22:33:52
奖章
  • 持之以恒
    持之以恒
    授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户。不积跬步无以至千里,不积小流无以成江海,程序人生的精彩需要坚持不懈地积累!