自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

vincent

一个对coding有独特追求的人。

  • 博客(39)
  • 资源 (5)
  • 收藏
  • 关注

原创 Elasticsearch 之(41)搜索距离当前位置一定范围内的酒店

酒店o2o app,作为案例背景比如说,现在用户,所在的位置,是个地理位置的坐标,我是知道我的坐标的,app是知道的,android,地理位置api,都可以拿到当前手机app的经纬度现在就要搜索出,举例我200m,或者1公里内的酒店我们之前出去玩儿,都会用一些酒店o2o app,典型的代表,很多旅游app,一般来说,我们怎么搜索,到了一个地方,就会搜索说,我这里举例几百米,2公里内的酒店,搜索一下...

2018-05-31 22:47:36 2396

原创 Elasticsearch 之(40)酒店o2o搜索案例以及搜索指定区域内的酒店

稍微真实点的案例,酒店o2o app作为一个背景,用各种各样的方式,去搜索你当前所在的地理位置附近的酒店搜索指定区域范围内的酒店,比如说,我们可以在搜索的时候,指定两个地点,就要在东方明珠大厦和上海路组成的矩阵的范围内,搜索我想要的酒店PUT /hotel_app{ "mappings": { "hotels": { "properties": {...

2018-05-31 22:41:46 1426

原创 Elasticsearch 之(39)引入geo point地理位置数据类型_矩形范围查询

es支持基于地理位置的搜索,和聚合分析的举个例子,比如说,我们后面就会给大家演示一下,你现在如果说做了一个酒店o2o app,让你的用户在任何地方,都可以根据当前所在的位置,找到自己身边的符合条件的一些酒店,那么此时就完全可以使用es来实现,非常合适我现在在上海某个大厦附近,我要搜索到距离我2公里以内的5星级的带游泳池的一个酒店s,用es就完全可以实现类似这样的基于地理位置的搜索引擎1、建立geo...

2018-05-31 22:37:30 5572 2

原创 Elasticsearch 之(38)使用动态映射模板定制自己的映射策略

高级的用法比如说,我们本来没有某个type,或者没有某个field,但是希望在插入数据的时候,es自动为我们做一个识别,动态映射出这个type的mapping,包括每个field的数据类型,一般用的动态映射,dynamic mapping这里有个问题,如果说,我们其实对dynamic mapping有一些自己独特的需求,比如说,es默认来说,如经过识别到一个数字,field: 10,默认是搞成这个...

2018-05-31 22:30:20 3934 2

原创 Elasticsearch 之(37)基于completion suggest实现搜索提示

suggest,completion suggest,自动完成,搜索推荐,搜索提示 --> 自动完成,auto completionauto completion比如说我们在百度,搜索,你现在搜索“大话西游” --> 百度,自动给你提示,“大话西游电影”,“大话西游小说”, “大话西游手游”不用你把所有你想要输入的文本都输入完,搜索引擎会自动提示你可能是你想要搜索的那个文本comple...

2018-05-31 22:22:57 3570

原创 Elasticsearch 之(36)使用search template将搜索模板化

前言搜索模板,search template,高级功能,就可以将我们的一些搜索进行模板化,然后的话,每次执行这个搜索,就直接调用模板,给传入一些参数就可以了,如果不了解搜索语法的,可以先阅读《 Elasticsearch 之(5)kibana多种搜索方式》。1、search template入门search template:"{{field}}" : "{{value}}" ,设置search ...

2018-05-31 22:08:17 4598 1

原创 Elasticsearch 之(35)深入剖析搜索结果的highlight高亮显示

前言在《 Elasticsearch 之(5)kibana多种搜索方式》中粗略提到高亮搜索的基本用法,本篇将详细剖析搜索结果的highlight高亮显示。1、一个最基本的高亮例子建立mapping,设置IK分词器PUT /blog_website{ "mappings": { "blogs": { "properties": { "title": { ...

2018-05-31 13:52:53 9109 8

原创 Elasticsearch 之(34)基于term vector深入探查数据的情况

1、term vector介绍获取document中的某个field内的各个term的统计信息term information: term frequency in the field, term positions, start and end offsets, term payloadsterm statistics: 设置term_statistics=true; total term fr...

2018-05-31 13:22:22 3142 1

原创 Elasticsearch 之(33)document数据建模实战_文件搜索_嵌套关系_父子/祖孙关系数据

前言在《Elasticsearch 之(2)Elasticsearch核心概念》中简单提到了document 和 数据库db 数据模型的差别,本文将详细讲述集中常用的数据模型。文件搜索数据建模,对类似文件系统这种的有多层级关系的数据进行建模1、文件系统数据构造PUT /fs{ "settings": { "analysis": { "analyzer": { ...

2018-05-29 16:56:28 1222 2

原创 Elasticsearch 之(32)fielddata内存控制、预加载以及circuit breaker断路器

1、fielddata核心原理fielddata加载到内存的过程是lazy加载的,对一个analzyed field执行聚合时,才会加载,而且是field-level加载的一个index的一个field,所有doc都会被加载,而不是少数doc不是index-time创建,是query-time创建2、fielddata内存限制elasticsearch.yml: indices.fielddata...

2018-05-28 11:47:40 6337

原创 Elasticsearch 之(31)fielddata原理初探

1、《Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析》提到 对于分词的field执行aggregation,发现报错GET /test_index/test_type/_search { "aggs": { "group_by_test_field": { "terms": { "field": "test_field" ...

2018-05-28 11:35:41 4838

原创 Elasticsearch 之(30)doc value机制内核级原理深入探秘

1、doc value原理(1)index-time生成PUT/POST的时候,就会生成doc value数据,也就是正排索引(2)核心原理与倒排索引类似正排索引,也会写入磁盘文件中,然后呢,os cache先进行缓存,以提升访问doc value正排索引的性能如果os cache内存大小不足够放得下整个正排索引,doc value,就会将doc value的数据写入磁盘文件中(3)性能问题:给j...

2018-05-28 11:20:20 1091

原创 Elasticsearch 之(29)基于doc value正排索引的聚合内部原理

聚合分析的内部原理是什么????aggs,term,metric avg max,执行一个聚合操作的时候,内部原理是怎样的呢?用了什么样的数据结构去执行聚合?是不是用的倒排索引?搜索+聚合,写个示例GET /test_index/test_type/_search {    "query": {        "match": {            "search_field": "t...

2018-05-28 11:15:16 1331 1

原创 Elasticsearch 之(28)percentiles 以及 percentiles rank网站访问时延SLA统计

需求有一个网站,记录下了每次请求的访问的耗时,需要统计tp50,tp90,tp99tp50:50%的请求的耗时最长在多长时间tp90:90%的请求的耗时最长在多长时间tp99:99%的请求的耗时最长在多长时间设置索引,准备数据PUT /website{ "mappings": { "logs": { "properties": { ...

2018-05-28 10:49:13 3287

原创 Elasticsearch 之(27)cardinality算法之优化内存开销以及HLL算法

1、cardinality语法es,去重,cartinality metric,对每个bucket中的指定的field进行去重,取去重后的count,类似于count(distcint)cardinality,count(distinct),5%的错误率,性能在100ms左右{ "size" : 0, "aggs" : { "months" : { "date_...

2018-05-28 10:25:11 2789

原创 Elasticsearch 之(26)聚合数据分析_易并行聚合算法,三角选择原则,近似聚合算法

1、易并行聚合算法有些聚合分析的算法,是很容易就可以并行的,比如说max有些聚合分析的算法,是不好并行的,比如说,count(distinct),并不是说,在每个node上,直接就出一些distinct value,就可以的,因为数据可能会很多es会采取近似聚合的方式,就是采用在每个node上进行近估计的方式,得到最终的结论,cuont(distcint),100万,1050万/95万 --&gt...

2018-05-28 09:56:13 2074

原创 Elasticsearch 之(25)重写IK分词器源码来基于mysql热更新词库

热更新在上一节《IK分词器配置文件讲解以及自定义词库》自定义词库,每次都是在es的扩展词典中,手动添加新词语,很坑(1)每次添加完,都要重启es才能生效,非常麻烦(2)es是分布式的,可能有数百个节点,你不能每次都一个一个节点上面去修改es不停机,直接我们在外部某个地方添加新的词语,es中立即热加载到这些新词语热更新的方案(1)修改ik分词器源码,然后手动支持从mysql中每隔一定时间,自动加载新...

2018-05-25 14:51:14 6654 19

原创 Elasticsearch 之(24)IK分词器配置文件讲解以及自定义词库

1、ik配置文件ik配置文件地址:es/plugins/ik/config目录IKAnalyzer.cfg.xml:用来配置自定义词库main.dic:ik原生内置的中文词库,总共有27万多条,只要是这些单词,都会被分在一起quantifier.dic:放了一些单位相关的词suffix.dic:放了一些后缀surname.dic:中国的姓氏stopword.dic:英文停用词ik原生最重要的两个配...

2018-05-25 14:25:16 5450

原创 Elasticsearch 之(23)IK中文分词器的安装和使用

1、在elasticsearch中安装ik中文分词器(1)git clone https://github.com/medcl/elasticsearch-analysis-ik(2)git checkout tags/v5.2.0(3)mvn package(4)将target/releases/elasticsearch-analysis-ik-5.2.0.zip拷贝到es/plugins/i...

2018-05-25 14:12:08 1387

原创 Elasticsearch 之(22) 自定义相关度分数算法 和 常见的相关度分数优化方法

前言之前《lucene的相关度评分TF&IDF算法以及向量空间模型算法》,已经很了解整个es的相关度评分的算法了,算法思想,TF/IDF,vector model,boolean model; 实际的公式,query norm,query coordination,boost。自定义相关度分数算法我们可以做到自定义一个function_score函数,自己将某个field的值,跟es内置算...

2018-05-24 15:05:54 6749

原创 Elasticsearch 之(21)前缀搜索、通配符搜索、正则搜索、推荐搜索 和 模糊搜索

1、前缀搜索GET /forum/article/_search { "query": { "prefix": { "articleID": { "value": "KDKE" } } }}{  "took": 52,  "timed_out": false,  "_shards&a

2018-05-24 11:19:57 9045

原创 Elasticsearch 之(20)proximity match 近似匹配

1、什么是近似匹配两个句子java is my favourite programming language, and I also think spark is a very good big data system.java spark are very related, because scala is spark's programming language and scala is al...

2018-05-22 17:59:44 2100

原创 Elasticsearch 之(19)cross-fields策略

cross-fields搜索,一个唯一标识,跨了多个field。比如一个人,标识,是姓名;一个建筑,它的标识是地址。姓名可以散落在多个field中,比如first_name和last_name中,地址可以散落在country,province,city中。跨多个field搜索一个标识,比如搜索一个人名,或者一个地址,就是cross-fields搜索初步来说,如果要实现,可能用most_fields...

2018-05-22 17:36:46 2636

原创 Elasticsearch 之(18)best fields,most fields策略

基于dis_max实现best fields策略进行多字段搜索1、为帖子数据增加content字段POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {"content" : "i like to write best elasticsearch article"} }{ "update":

2018-05-22 17:31:47 2156 1

原创 Elasticsearch 之(17)relevance score

relevance score (相关性分数)需求:搜索标题中包含java的帖子,同时呢,如果标题中包含hadoop或elasticsearch就优先搜索出来,同时呢,如果一个帖子包含java hadoop,一个帖子包含java elasticsearch,包含hadoop的帖子要比elasticsearch优先搜索出来知识点,搜索条件的权重,boost,可以将某个搜索条件的权重加大,此时当匹配这...

2018-05-22 17:20:42 579

原创 Elasticsearch 之(16)_filter执行原理深度剖析(bitset机制与caching机制)

(1)在倒排索引中查找搜索串,获取document listdate来举例word     doc1     doc2     doc32017-01-01 * *2017-02-02 * *2017-03-03 * * *filter:2017-02-02到倒排索引中一找,发现2017-02-02对应的document list是doc2,doc3(2)为每个在倒排索引中搜索到的结果...

2018-05-22 17:14:50 1202

原创 Elasticsearch 之(15)深度图解剖析document写入原理(buffer,segment,commit)

(1)数据写入buffer(2)commit point(3)buffer中的数据写入新的index segment(4)等待在os cache中的index segment被fsync强制刷到磁盘上(5)新的index sgement被打开,供search使用(6)buffer被清空每次commit point时,会有一个.del文件,标记了哪些segment中的哪些document被标记为de...

2018-05-22 16:55:12 3810 5

原创 Elasticsearch 之(14)创建、修改以及删除索引

创建索引的语法PUT /my_index{ "settings": { ... any settings ... }, "mappings": { "type_one": { ... any mappings ... }, "type_two": { ... any mappings ... }, ... }}创建索引的示...

2018-05-22 16:50:15 4176

原创 Elasticsearch 之(13)lucene的相关度评分TF&IDF算法以及向量空间模型算法

算法介绍relevance score算法,简单来说,就是计算出,一个索引中的文本,与搜索文本,他们之间的关联匹配程度Elasticsearch使用的是 term frequency/inverse document frequency算法,简称为TF/IDF算法Term frequency:搜索文本中的各个词条在field文本中出现了多少次,出现次数越多,就越相关搜索请求:hello world...

2018-05-22 16:36:48 2967

原创 Elasticsearch 之(12)query string的分词,修改分词器以及自定义分词器

query string分词query string必须以和index建立时相同的analyzer进行分词query string对exact value和full text的区别对待 (第10节中详细阐述过)date:exact value_all:full text比如我们有一个document,其中有一个field,包含的value是:hello you and me,建立倒排索引我们要搜索...

2018-05-22 16:27:33 5778

原创 Elasticsearch 之(11)mapping引入

核心的数据类型stringbyte,short,integer,longfloat,doublebooleandatedynamic mapping (动态生成mapping)true or false --> boolean123 --> long123.45 --> double2017-01-01 --> date"hello world" --> stri...

2018-05-22 16:21:25 878

原创 Elasticsearch 之(10) 倒排索引核心原理、分词器、精确匹配与全文搜索

倒排索引核心原理doc1:I really liked my small dogs, and I think my mom also liked them.doc2:He never liked any dogs, so I hope that my mom will not expect me to liked him.分词,初步的倒排索引的建立word doc1 doc2I ...

2018-05-21 17:18:52 2827

原创 Elasticsearch 之(9) document 路由 、CRUD原理、bulk性能优化

document 路由 (1)document路由到shard上是什么意思?(2)路由算法:shard = hash(routing) % number_of_primary_shards举个例子,一个index有3个primary shard,P0,P1,P2每次增删改查一个document的时候,都会带过来一个routing number,默认就是这个document的_id(可能是手动指定,...

2018-05-18 16:17:34 901

原创 Elasticsearch 之(8)partial update 原理、 基于groovy使用、 内置乐观锁并发控制

partial update 原理 和 优点es,其实是有个内置的脚本支持的,可以基于groovy脚本实现各种各样的复杂操作基于groovy脚本,如何执行partial updatees scripting module,后面会详细讲解,这里就只是初步讲解一下PUT /test_index/test_type/11{ "num": 0, "tags": []}(1)内置脚本POST ...

2018-05-18 14:48:10 401

原创 Elasticsearch 之(7)并发冲突解决: 剖析悲观锁与乐观锁的并发控制方案

并发冲突问题剖析悲观锁与乐观锁两种并发控制方案基于_version进行乐观锁并发控制(1)_version元数据PUT /test_index/test_type/6{ "test_field": "test test"}{ "_index": "test_index", "_type": "test_type", "_id": "6&

2018-05-18 14:30:55 5116

原创 Elasticsearch 之(6)kibana嵌套聚合,下钻分析,聚合分析

计算每个tag下的商品数量GET /ecommerce/product/_search{ "aggs": { "group_by_tags": { "terms": { "field": "tags" } } }}将文本field的fielddata属性设置为true (正排索引 用于嵌套聚合查询, 后面会详细描述)PUT /ecommerce/_mappi...

2018-05-18 14:05:53 11879

原创 Elasticsearch 之(5)kibana多种搜索方式

query string search搜索全部商品:GET /ecommerce/product/_searchtook:耗费了几毫秒timed_out:是否超时,这里是没有_shards:数据拆成了5个分片,所以对于搜索请求,会打到所有的primary shard(或者是它的某个replica shard也可以)hits.total:查询结果的数量,3个documenthits.max_scor...

2018-05-18 11:45:07 12703

原创 Elasticsearch 之(4)kibana集群健康检查,文档 CRUD

document数据格式面向文档的搜索分析引擎(1)应用系统的数据结构都是面向对象的,复杂的(2)对象数据存储到数据库中,只能拆解开来,变为扁平的多张表,每次查询的时候还得还原回对象格式,相当麻烦(3)ES是面向文档的,文档中存储的数据结构,与面向对象的数据结构是一样的,基于这种文档数据结构,es可以提供复杂的索引,全文检索,分析聚合等功能(4)es的document用json数据格式来表达pub...

2018-05-18 11:27:17 3854

转载 Java虚拟机是如何执行线程同步的

想介绍下synchronized的原理,但是又不知道从何下手,在网上看到一篇老外的文章,介绍了和线程同步相关的几个基础知识点。所以想把它翻译一下给大家看看。相信看过这些基础知识之后再看我后面要写的synchronized的原理就会好理解一点了。原文地址:How the Java virtual machine performs thread synchronization了解Java语言的人都知道...

2018-05-08 16:02:28 425

PMP备考九阴真经—项目管理十大知识领域输入输出、工具和技术暨知识点汇总

PMP备考九阴真经—项目管理十大知识领域输入输出、工具和技术暨知识点汇总,PMP备考九阴真经—项目管理十大知识领域输入输出、工具和技术暨知识点汇总

2020-10-14

LOMA+280+review+with+answer (1).rar

loma280资料,英文版,包括习题集,答案,解答等信息。。。 LOMA 280介紹了保險原理,被保險人的保險過程和保單所有人的權益。這套教材同時也包括了個人和團體人壽、健康保險以及年金的內容和特點。

2020-09-02

springBatch 组件学习教程源码

springBatch 学习教程源码全套 对应博客解析:https://blog.csdn.net/wuzhiwei549/article/details/85392128

2020-04-04

java web考试报名系统

jquery前端验证 考生报名 邮件UUID 生成验证码 激活 报名注册

2015-06-25

空空如也

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

TA关注的人

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