07 2018 档案

摘要:HashMap HashTable HashTable锁住整个表 会存在复合操作上的问题“若不存则添加” “若存在则删除” 也是不安全的 效率低 ConcurrentHashMap:采用锁分段机制 并发级别:concurrentLevel并发级别 默认16 支持多个thread同事访问一个hashm 阅读全文
posted @ 2018-07-31 23:05 zghgz 阅读(120) 评论(0) 推荐(0)
摘要:flag是main thread和td共享的数据,他们都在各自的线程内有一个copy,由于while true的速度十分快,main thread不能读取到td修改后的值,所以只能输出 flag=true。 内存不可见性:当多个thread操作共享数据时,彼此不可见 volatile:当多个thre 阅读全文
posted @ 2018-07-31 22:44 zghgz 阅读(161) 评论(0) 推荐(0)
摘要:静态代理:静态代理的类也需要实现接口interface1,还要创建一个实现接口interface1的其他类class1,并且在静态代理类重写的方法中调用class1重写的方法。操作太多冗余。不好 动态代理: jdk动态代理的实现:java.lang.reflect.Proxy,java.lang.r 阅读全文
posted @ 2018-07-30 21:19 zghgz 阅读(283) 评论(0) 推荐(0)
摘要:创建两个相同的对象 没有重写对象的equals方法和hashcode方法 默认使用object的。并且依次添加到set中,成功添加了两个 重写方法之后只添加成功了一个对象 set的大小为1 如果只是重写equals方法 不重写hashcode方法 set中任然有两个对象 并且hashcode不同,s 阅读全文
posted @ 2018-07-29 19:01 zghgz 阅读(10376) 评论(0) 推荐(0)
摘要:第30节彻底掌握IK中文分词_上机动手实战IK中文分词器的安装和使用 之前大家会发现,我们全部是用英文在玩儿。。。好玩儿不好玩儿。。。不好玩儿 中国人,其实我们用来进行搜索的,绝大多数,都是中文应用,很少做英文的standard:没有办法对中文进行合理分词的,只是将每个中文字符一个一个的切割开来,比 阅读全文
posted @ 2018-07-19 21:08 zghgz 阅读(666) 评论(0) 推荐(0)
摘要:第11节深度探秘搜索技术_案例实战基于dis_max实现best fields策略进行多字段搜索 课程大纲 1、为帖子数据增加content字段 POST /forum/article/_bulk{ "update": { "_id": "1"} }{ "doc" : {"content" : "i 阅读全文
posted @ 2018-07-14 11:31 zghgz 阅读(464) 评论(0) 推荐(0)
摘要:第2节结构化搜索_在案例中实战使用term filter来搜索数据 课程大纲 1、根据用户ID、是否隐藏、帖子ID、发帖日期来搜索帖子 (1)插入一些测试帖子数据 POST /forum/article/_bulk{ "index": { "_id": 1 }}{ "articleID" : "XH 阅读全文
posted @ 2018-07-12 15:56 zghgz 阅读(376) 评论(0) 推荐(0)
摘要:Java虚拟机内存管理: 共享: 方法区:存储运行时常量池、已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据 java堆:存储对象实例 线程独占区: 虚拟机栈:存放方法运行时所需的数据、成为栈帧 本地方法栈:为jvm所调用到的Nativate即本地方法服务 程序计数器:记录当前线 阅读全文
posted @ 2018-07-12 09:38 zghgz 阅读(228) 评论(0) 推荐(0)
摘要:恢复内容开始 jdk jre jvm 的关系 java7的结构图 java8 jvm内存溢出 jdk /bin 目录下的jconsole java发展历史 oak:用在嵌入式设备上 相当于Android系统 1995 oak-->java write once run anywhere (JVM 虚 阅读全文
posted @ 2018-07-10 19:44 zghgz 阅读(105) 评论(0) 推荐(0)
摘要:71.内核原理探秘_最后优化写入流程实现海量磁盘文件合并(segment merge,optimize) 课程大纲 每秒一个segment file,文件过多,而且每次search都要搜索所有的segment,很耗时 默认会在后台执行segment merge操作,在merge的时候,被标记为del 阅读全文
posted @ 2018-07-09 16:58 zghgz 阅读(152) 评论(0) 推荐(0)
摘要:61.索引管理_快速上机动手实战创建、修改以及删除索引 课程大纲 1、为什么我们要手动创建索引? 2、创建索引 创建索引的语法 PUT /my_index{ "settings": { ... any settings ... }, "mappings": { "type_one": { ... a 阅读全文
posted @ 2018-07-09 13:22 zghgz 阅读(166) 评论(0) 推荐(0)
摘要:第51.初识搜索引擎_上机动手实战多搜索条件组合查询 课程大纲 GET /website/article/_search{ "query": { "bool": { "must": [ { "match": { "title": "elasticsearch" } } ], "should": [ 阅读全文
posted @ 2018-07-07 13:50 zghgz 阅读(244) 评论(0) 推荐(0)
摘要:第四十一讲!分词器内部组成 内置分词器 课程大纲 1、什么是分词器 切分词语,normalization(提升recall召回率) 给你一段句子,然后将这段句子拆分成一个一个的单个的单词,同时对每个单词进行normalization(时态转换,单复数转换),分词器recall,召回率:搜索的时候,增 阅读全文
posted @ 2018-07-06 17:30 zghgz 阅读(249) 评论(0) 推荐(0)
摘要:第三十一讲! 分布式文档系统 写一致性原理以及相关参数 课程大纲 (1)consistency,one(primary shard),all(all shard),quorum(default) 我们在发送任何一个增删改操作的时候,比如说put /index/type/id,都可以带上一个consi 阅读全文
posted @ 2018-07-05 14:05 zghgz 阅读(287) 评论(0) 推荐(0)
摘要:第二十一讲! 1、上机动手实战演练基于_version进行乐观锁并发控制 (1)先构造一条数据出来 PUT /test_index/test_type/7{ "test_field": "test test"} (2)模拟两个客户端,都获取到了同一条数据 GET test_index/test_ty 阅读全文
posted @ 2018-07-05 11:16 zghgz 阅读(554) 评论(0) 推荐(0)
摘要:第十一讲: 2个node环境下replica shard 是如何分配的 1)replica shard分配:3个primary shard,3个replica shard,1 node(2)primary > replica同步(3)读请求:primary/replica 当primary shar 阅读全文
posted @ 2018-07-04 19:17 zghgz 阅读(120) 评论(0) 推荐(0)
摘要:ES概念: 垂直搜索(站内搜索) 什么是全文检索和Lucene? 1 全文检索 倒排索引 2 Lucene 就是一个jar包 里面包含了封装好的各种简历倒排索引 以及进行搜索的代码 包括各种算法 我们就用java开发的时候 引入 lucene jar 然后基于lucene的api进行开发 用luce 阅读全文
posted @ 2018-07-04 16:36 zghgz 阅读(201) 评论(0) 推荐(0)