10 2017 档案

摘要:摘要 当你某一天打开 Kibana 对应的 Monitoring 选项卡的时候,发现提示需要下载新的 license,旧的 license 已经过期了,试用期为30天,如果不是很需要其他的复杂监控、报警功能,只是需要一些简单的节点监控、索引监控和搜索监控等,那么只需要选择第一个 common 选项点 阅读全文
posted @ 2017-10-24 15:59 星火燎原智勇 阅读(3051) 评论(0) 推荐(1)
摘要:1. gofmt 命令 大部分的格式问题可以通过 gofmt 来解决,gofmt 自动格式化代码,保证所有的 go 代码与官方推荐的格式保持一致,所有格式有关问题,都以gofmt的结果为准。所以,建议在提交代码库之前先运行一下这个命令。 2. 行长 一行最长不超过80个字符,超过的使用换行展示,尽量 阅读全文
posted @ 2017-10-23 23:12 星火燎原智勇 阅读(2818) 评论(0) 推荐(0)
摘要:1. 什么是大文本?具体是什么? 首先需要理解,ElasticSearch 建立索引完成全文检索的前提是将待检索的信息导入到 ElasticSearch 中。而有的信息对应的正文内容会非常的大,可能达到 1MB ~ 3MB 左右字节,这个内容就认为是大文本,一般我们都将该内容存储到名为 conten 阅读全文
posted @ 2017-10-13 18:44 星火燎原智勇 阅读(1715) 评论(0) 推荐(0)
摘要:开篇 在ElasticSearch 系列十四中提到的问题即 ElasticStack系列之十四 & ElasticSearch5.x bulk update 中重复 id 性能骤降,继续这个问题再继续查看更加多的源代码,看看底层在执行 index、create 和 update 操作到底有什么不同, 阅读全文
posted @ 2017-10-13 16:30 星火燎原智勇 阅读(641) 评论(0) 推荐(0)
摘要:问题描述 一个线上集群,执行的 Query DSL 都是一样的,只是参数不同。统计数据显示 98% ~ 99% 的查询相应速度都很快,只需要 4 ~ 6ms,但是有 1% 左右的查询响应时间在 100ms ~ 200ms 之间。集群硬件配置较高,使用的是 SSD 硬盘,系统可用内存远高于索引所使用内 阅读全文
posted @ 2017-10-12 23:31 星火燎原智勇 阅读(925) 评论(0) 推荐(0)
摘要:目前在绝对多数公司在使用 ElasticSearch 将其当做数据库使用,将多个数据库中的数据同步到 ElasticSearch 索引是非常常见的应用场景。那么自然而然就会涉及到数据频繁的新增和更新,而官方的文档并没有对 update 的底层机制做特别说明,而当我们从 2.x 版本升级到 5.x 发 阅读全文
posted @ 2017-10-12 22:41 星火燎原智勇 阅读(2447) 评论(0) 推荐(0)
摘要:业务需求 1. 实现搜索引擎前缀搜索功能(中文,拼音前缀查询及简拼前缀查询功能) 2. 实现摘要全文检索功能,及标题加权处理功能(按照标题权值高内容权值相对低的权值分配规则,按照索引的相关性进行排序,列出前20条相关性最高的文章) 前缀搜索 中文搜索: 1. 搜索“刘”,匹配到“刘德华”、“刘斌”、 阅读全文
posted @ 2017-10-09 19:20 星火燎原智勇 阅读(618) 评论(0) 推荐(0)
摘要:问题 使用 ElasticSearch 做搜索 时,比如用户输入 --> 柠檬,搜出来的结果 --> 柠檬汽水,柠檬味牙膏等在前面,真正想要的水果那个 柠檬 在后面。已经在中文分词中加了 柠檬,还是不管用,正常来说 tf、idf 都一样,影响排序的只有 field norms。按道理 “柠檬” 的 阅读全文
posted @ 2017-10-09 18:53 星火燎原智勇 阅读(438) 评论(0) 推荐(0)
摘要:问题 1. jdbc-input-plugin 只能实现数据库的追加,对于 elasticsearch 增量写入,但经常 jdbc 源一端的数据库可能会做数据库删除或者更新操作。这样一来数据库与搜索引擎的数据库就出现了不对称的情况。当然你如果有开发团队可以写程序在删除或者更新的时候同步对搜索引擎操作 阅读全文
posted @ 2017-10-09 18:23 星火燎原智勇 阅读(602) 评论(0) 推荐(0)
摘要:golang 性能测试包是位于 net/http 包下的 pprof,其相关介绍可以参看具体的 官方文档 有关 golang 性能测试使用特别简单,在 main 包中的引包位置直接引入: import _ "net/http/pprof" 之后,在 main 函数中增加以下代码行即可: go fun 阅读全文
posted @ 2017-10-09 17:58 星火燎原智勇 阅读(1251) 评论(0) 推荐(0)
摘要:简介 一幅图抵得上千言万语,这在描述复杂的计算机系统时尤为正确。当系统环境变得更加复杂时,用图将它们表示出来并记入文档就显得更加重要。例如,虚拟化技术有很多优点,但它们通常会让环境变得更加复杂和更难理解。Graphviz 是一个可以创建图表的灵活应用程序,可以轻松实现脚本化。本文将介绍 Graphv 阅读全文
posted @ 2017-10-09 17:26 星火燎原智勇 阅读(6562) 评论(1) 推荐(0)
摘要:合理利用线程池能够带来三个好处。 第一:降低资源消耗。通过重复利用已创建的线程降低线程创建和销毁造成的消耗。 第二:提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 第三:提高线程的可管理性。 线程是稀缺资源,如果无限制的创建,不仅会消耗系统资源,还会降低系统的稳定性,使用线程池 阅读全文
posted @ 2017-10-05 21:27 星火燎原智勇 阅读(440) 评论(0) 推荐(1)
摘要:真实的应用场景是:在测试收包的顺序的时候,加了个 tick 就发现丢包了 那么来看一个应用例子: 输出结果如下: 问题出在这个select里面: [tick.C 介绍说明] 当两个 case 条件都满足的时候,运行时系统会通过一个伪随机的算法决定哪个case将会被执行。所以当 tick.C 条件满足 阅读全文
posted @ 2017-10-05 21:05 星火燎原智勇 阅读(985) 评论(0) 推荐(0)
摘要:golang 中的 sync 包有一个很有用的功能,就是 WaitGroup 先说说 WaitGroup 的用途:它能够一直等到所有的 goroutine 执行完成,并且阻塞主线程的执行,直到所有的 goroutine 执行完成。 WaitGroup 总共有三个方法:Add(delta int), 阅读全文
posted @ 2017-10-05 20:27 星火燎原智勇 阅读(1147) 评论(0) 推荐(0)