- 博客(81)
- 资源 (9)
- 收藏
- 关注
原创 机器学习
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Ma...
2018-11-28 17:25:32
368
原创 Lucene -- 准实时搜索Near Real Time
NRT:Near Real Time , Lucene 为了支持实时搜索,在 2.9 版本就已经设计出来。想更多了解可以看看 http://wiki.apache.org/lucene-java/NearRealtimeSearch 它的原理记录在 LUCENE-1313 和 LUCENE-1516。介绍下代码实现的过程: 在 Index Writer 内部维护了一个 Ram Directory,
2017-05-31 09:51:23
1421
原创 JavaCC -- 中文字符解析失败(c++版)
问题查询”q=手机”, 提示Error “Lexical error at: 1:5. Encountered: ter: EOF.”; 查询 ‘q=”手机”’, 不提示错误. 查询 “q = 空调”, 不提示错误. 查询 ‘q=”光源”, 提示Error “Lexical error at: 1:3. Encountered: ter: “光. Lexical error at: 1:7
2017-05-08 09:48:55
2021
翻译 RocksDB译文之一 -- RocksDB简介
这篇文章是RocksDB官方文档的译文,原文地址:https://github.com/facebook/rocksdb/wiki/RocksDB-Basics1.简介RocksDB项目起源于Facebook的一个实验项目,该项目旨在开发一个与快速存储器(尤其是闪存)存储数据性能相当的数据库软件,以应对高负载服务。 这是一个c++库,可用于存储键和值,可以是任意大小的字节流。它支持原子读和写。
2017-01-09 09:30:19
8495
转载 四层和七层负载均衡的区别
(一) 简单理解四层和七层负载均衡: ① 所谓四层就是基于IP+端口的负载均衡;七层就是基于URL等应用层信息的负载均衡;同理,还有基于MAC地址的二层负载均衡和基于IP地址的三层负载均衡。 换句换说,二层负载均衡会通过一个虚拟MAC地址接收请求,然后再分配到真实的MAC地址;三层负载均衡会通过一个虚拟IP地址接收请求,然后再分配到真实的IP地址;四层通过虚拟IP+端口接收请求,然后再分
2016-11-09 10:25:26
405
原创 SIGBUS(Bus error singal 7)
背景用mmap将文件映射到内存,读取文件时,提示“SIGBUS Bus ERROR”错误分析SIGBUS与SIGSEGV信号的一般区别如下: 1) SIGBUS(Bus error)意味着指针所对应的地址是有效地址,但总线不能正常使用该指针。通常是未对齐的数据访问所致。 2) SIGSEGV(Segment fault)意味着指针所对应的地址是无效地址,没有物理内存对应该地址。 通过
2016-10-21 09:35:00
10203
转载 C/C++ --- 全局变量初始化总结
注意:本文所说的全局变量指的是 variables with static storage,措词来自 c++ 的语言标准文档。什么时候初始化根据 C++ 标准,全局变量的初始化要在 main 函数执行前完成,常识无疑,但是这个说法有点含糊,main 函数执行前到底具体是什么时候呢?是编译时还是运行时?答案是既有编译时,也可能会有运行时(seriously), 从语言的层面来说,全局变量的初始化可以划
2016-09-01 17:29:56
6395
原创 C/C++ --- 动态注册类
背景需要根据配置文件中的插件名字获取插件实例,从而需要维护<插件名字,插件实例>的映射关系。 当有新插件加入项目时,每次都需要在该映射关系中插入一条信息。为了避免避免此操作,通过定义宏 自动完成 新插件的注册功能。设计思想每个插件在全局域中定义一个注册类,在该注册类的构造函数中将<插件名字,插件实例>插入全局的map中, 在全局域定义该注册类的一个实例,从而调用构造函数,在map中插入该
2016-09-01 17:22:09
5609
原创 消息队列
1. 简介消息队列已经逐渐成为企业IT系统内部通信的核心手段。它具有低耦合、可靠投递、广播、流量控制、最终一致性等一系列功能,成为异步RPC的主要手段之一。 当今市面上有很多主流的消息中间件,如老牌的ActiveMQ、RabbitMQ,炙手可热的Kafka,阿里巴巴自主开发的Notify、MetaQ、RocketMQ等。2. 应用场景2.1 解耦所谓解耦,简单点讲就是一个事务,只关心核心的流程。而
2016-08-16 19:33:16
1024
转载 淘宝搜索排序
(文章来自网络整理)1. 搜索使命帮助买家快捷方便地找到满意的商品 –站在买家的角度 –满意的商品:商品品质和服务质量2.排序的基本框架2.1 文本相关性标题相关性:分词、选词(长尾关键词) 类目相关性:类目直达、属性预选2.2 市场规则消保优先:基础消保如实描述 橱窗推荐优先2.3 下架时间商品7天的下架时间:合理选择时间来发布商品2.4 作弊作弊违规降权屏蔽:搜索诊断助手、累积影响全店
2016-08-05 16:46:48
793
原创 微服务
1. 简介微服务的概念最初由Martin Fowler与James Lewis于2014年共同提出,微服务架构风格是一种使用一套小服务来开发单个应用的方式途径,每个服务运行在自己的进程中,并使用轻量级机制通信,通常是HTTP API,这些服务基于业务能力构建,并能够通过自动化部署机制来独立部署,这些服务使用不同的编程语言书写,以及不同数据存储技术,并保持最低限度的集中式管理。 微服务是一种基于软件
2016-07-18 19:11:29
2216
原创 负载均衡算法
1. 简介负载均衡的发展基础就是负载均衡算法。针对不同的服务器我们也会采用不同的负载均衡算法,因为他们所具备的和要求的功能各不相同。实际服务器(RealServer)可以被分配不同的加权值来调整被分配的流量。比如性能高的大型服务器可配置较大的加权值,而为性能较低的小型服务器设置较小的加权值。为了避免服务器因过载而崩溃,可为实际服务器指定最大连接阈值来避免该服务器过载。任何服务器可被指定为另一台服务器
2016-07-13 16:35:25
164
转载 高并发性能调试经验分享
转自:https://zhuanlan.zhihu.com/p/21348220引文4月份的时候看到一道面试题,据说是腾讯校招面试官提的:在多线程和高并发环境下,如果有一个平均运行一百万次才出现一次的bug,你如何调试这个bug?知乎原贴地址如下:腾讯实习生面试,这两道题目该怎么回答? - 编程 . 遗憾的是知乎很多答案在抨击这道题本身的正确性,虽然我不是这次的面试官,但我认为这是一道非常好的面试
2016-07-13 15:13:26
4145
转载 分布式系统
1. 简介分布式存储特点概括:规模大+成本低。 分布式存储的挑战来源自于其设计的两个技术领域:分布式 + 存储:1.1 要素可扩展:灵活水平扩展到成百上千上万,并且整体性能线性增长。 低成本:构建与低成本PC,兼备自动容错,自动负载均衡等机制。 高性能:秒,毫秒,亚秒级别。 易用:构建生态环境,与其它系统集成,如监控,运维,数据导入。1.2 分布式数据分类非结构化数据:如文本,图像,图
2016-07-13 14:18:07
666
原创 算法 --- 一致性哈希算法
简介一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。 但现在一致性hash算法在分布式系统中也得到了广泛应用,研究过memcached缓存数据库的人都知道,mem
2016-07-12 14:44:22
1069
转载 机器学习 --- 迭代决策树(GBDT)
简介迭代决策树GBDT(Gradient Boosting Decision Tree)也被称为是MART(Multiple Additive Regression Tree))或者是GBRT(Gradient Boosting Regression Tree),是一种基于集成思想的决策树模型。 Boosting,迭代,即通过迭代多棵树来共同决策。这怎么实现呢?难道是每棵树独立训练一遍,比如A这个
2016-07-07 18:14:58
1526
转载 Solr&Lucene --- 排序
出处:http://ronxin999.blog.163.com/blog/static/42217920201110532554485/luence 和solr排序都有排序功能,solr的排序就是基于luence的排序来实现的。solr通过url里加solr=true来排序,把后面带的参数封装成SortField,然后根据luence的底层来排序。下面开始讲luence排序的实现。luence排序
2016-07-06 17:53:00
1343
原创 Web --- 缓存
简介缓存就是用来避免频繁的到主存储器(一般来说可能是数据库,结构化的磁盘文件,远程网络接口,程序接口等等提供数据返回的)获取数据而建立的一个存取更快的临时存储器(缓存)。一般来说,缓存比主存储器更小,但是存取速度非常快。 Web缓存介于服务器和客户端之间。这个服务器可能是源服务器(资源所驻留的服务器),数量可能是1个或多个;客户端也可能是1个或多个。Web缓存就在服务器-客户端之间监控请求,并且把
2016-07-05 18:36:42
136
转载 Web缓存 --- Varnish方案
简介varnish是一款高性能的开源HTTP加速器。 Varnish代替Squid的理由有三点: 1、Varnish采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。 2、Varnish的稳定性还不错。 3、通过Varnish管理端口,可以使用正则表达式快速、批
2016-07-05 14:48:14
590
原创 Solr --- Group查询
简介Group查询将包含相同字段的文档进行分组,每组返回得分较高的文档。 例如:在一个电子零售网站搜索”DVD”,可能会返回三个类目”TV and Video”、”Movies”、”Computers”,并且每个类目包含三个文档。查询词”DVD”在这三个类目中都出现了,Group查询可以将它们分组以此来增加与用户的关联。请求参数 参数 类型 描述 group bool 设置为
2016-06-30 17:58:33
2617
原创 Solr --- Group查询与Facet区别
简介facet的查询结果主要是分组信息:有什么分组,每个分组包括多少记录;但是分组中有哪些数据是不可知道的,只有进一步搜索。 group则类似于关系数据库的group by,可以用于一个或者几个字段去重、显示一个group的前几条记录等。来自solr ref guide的解释: Result Grouping groups documents with a common field value
2016-06-30 11:22:01
3539
转载 机器学习 -- 随机森林
阅读目录1 什么是随机森林?2 随机森林的特点3 随机森林的相关基础知识4 随机森林的生成5 袋外错误率(oob error)6 随机森林工作原理解释的一个简单例子7 随机森林的Python实现8 参考内容回到顶部1 什么是随机森林? 作为新兴起的、高度灵活的一种机器学习算法,随机森林(Random Forest,简称RF)拥有
2016-06-29 19:06:29
11583
原创 Solr -- query和filter query
Solr中的fq参数和q参数的执行顺序: 1. fq首选会在FilterCache中查找,如果命中,则返回FilterCache中的DocSet; 如果没有命中,则会在索引查找,返回DocSet并将其加入到FilterCache中。 2. q参数的查询结果和上面fq的结果取交集得到DocSet 3. 如果查询语句中包含post filters,则合并到第二步的DocSet中流程图如下:
2016-06-29 14:09:56
3854
原创 字符串 --- KMP算法
字符串匹配举例来说,有一个字符串”BBC ABCDAB ABCDABCDABDE”,我想知道,里面是否包含另一个字符串”ABCDABD”?KMP算法首先,字符串”BBC ABCDAB ABCDABCDABDE”的第一个字符与搜索词”ABCDABD”的第一个字符,进行比较。因为B与A不匹配,所以搜索词后移一位。**B**BC ABCDAB ABCDABCDABDE**A**BCDABD因为B与A不
2016-06-27 11:17:21
373
转载 Linux --- 清理内存和Cache的方法
Linux下清理内存和Cache方法 /proc/sys/vm/drop_caches频繁的文件访问会导致系统的Cache使用量大增$ free -mtotal used free shared buffers cachedMem: 3955 3926 28 0 55 3459-/+ buffers/cache: 411 3544Swap: 5726 0 5726
2016-06-23 11:51:24
655
原创 Solr --- 聚合统计stats
简介stats查询用于对文档中的数字型、字符型和日期型字段进行简单的统计。查询语法输入: q=apple&stats=true&stats.field=price&stats.field=popularity输出统计信息:1:lst name="stats">2: lst name="stats_fields">3: lst name="price">4:
2016-06-22 17:48:14
2309
转载 Solr --- 函数查询(FunctionQuery)
作用通过函数查询让我们可以利用 numeric域的值或者与域相关的的某个特定的值的函数,来对文档进行评分。如何使用 这里主要有两种方法可以使用函数查询,这两种方法都是通过solr http 接口的: 1、内嵌在正常的solr查询表达式中。即,将函数查询写在 q这个参数中,这时候,我们使用_val_将函数与其他的查询加以区别。至于具体怎样使用,请读者留意下
2016-06-21 15:41:56
1551
转载 Lucene的数字范围搜索 (Numeric Range Query)原理
0. 全文索引的核心就是倒排索引. 1. 若数字不支持范围查询, 直接变成字符串查找即可 2. 如果要支持范围查询, 直接的字符串存储支持么? 目前lucene要求term按照字典序(lexicographic sortable)排列,然后它的范围查询根据tii找到范围的起始Term,然后把这中间的所有的Term展开成一个B
2016-06-17 16:25:22
7981
1
原创 C/C++ --- double与string的相互转化
double与string的相互转化(C++)#include <sstream>using namespace std;/** * double转换为string */string convertToString(double d) { ostringstream os; if (os << d) return os.str(); return "invalid convers
2016-06-08 15:52:06
7550
原创 Linux --- 计算程序执行时间
Linux下计算程序执行时间 #include <ctime>clock_t begin , end;begin = clock();//这里是要统计时间的代码end = clock();unsigned uRunTime = (end - begin) * 1.0 / CLOCKS_PER_SEC * 1000;//这样就得出程序运行的毫秒数。
2016-06-08 15:49:40
2282
原创 Linux --- 原子操作
原子锁是linux内核同步的一种机制,下面将其应用到线程同步中来。#include <alsa/iatomic.h>#include <pthread.h>#include <stdio.h>// 定义一个原子变量static atomic_t g_atomic = ATOMIC_INIT(1);// 定义共享资源static volatile int g_i = 0;/* 定义线程chǔ
2016-06-08 15:45:37
516
原创 Spark --- 启动、运行、关闭过程
计算PI值// scalastyle:off printlnpackage org.apache.spark.examplesimport scala.math.randomimport org.apache.spark._/** Computes an approximation to pi */object SparkPi { def main(args: Array[String])
2016-06-07 16:35:40
21858
转载 推荐系统 --- 实时推荐系统
推荐系统介绍自从1992年施乐的科学家为了解决信息负载的问题,第一次提出协同过滤算法,个性化推荐已经经过了二十几年的发展。1998年,林登和他的同事申请了“item-to-item”协同过滤技术的专利,经过多年的实践,亚马逊宣称销售的推荐占比可以占到整个销售GMV(Gross Merchandise Volume,即年度成交总额)的30%以上。随后Netflix举办的推荐算法优化竞赛,吸引
2016-06-07 10:51:39
12636
原创 推荐系统 --- 协同过滤算法
简介协同过滤,Collaborative Filtering,简称CF,广泛应用于如今的推荐系统中。通过协同过滤算法,可以算出两个相似度:user-user相似度矩阵; item-item相似度矩阵。 为什么叫做协同过滤?是因为这两个相似度矩阵是通过对方来计算出来的。举个栗子:100个用户同时购买了两种物品A和B,得出在item-item相似度矩阵中A和B的相似度为0.8; 1000个物品同时被用
2016-06-07 10:49:49
759
转载 linux下去掉文件中^M的方法
在windows下编辑文件,然后放到linux环境。在windows环境下,换行是表示为\r\n(0x0d0x0a),而在linux下,换行为\n; 在sh脚本对这类文件进行处理时,很容易出现意想不到的情况,比如字符串的比较。 在sh脚本中,个人使用sed -i ‘s/\r//g’ filename的方式,但存在疑问sed -i ‘s/\r\n/\n/g’ filename为什么不生效?下述是参
2016-06-03 15:04:11
915
转载 HDFS
简介HDFS(Hadoop Distributed File System )Hadoop分布式文件系统。是根据google发表的论文翻版的。论文为GFS(Google File System)Google 文件系统(中文,英文)。HDFS有很多特点: ① 保存多个副本,且提供容错机制,副本丢失或宕机自动恢复。默认存3份。 ② 运行在廉价的机器上。
2016-06-02 16:05:38
572
转载 maven介绍
转载:http://aiape.iteye.com/blog/14554201.前言Maven,发音是[`meivin],"专家"的意思。它是一个很好的项目管理工具,很早就进入了我的必备工具行列,但是这次为了把project1项目完全迁移并应用maven,所以对maven进行了一些深入的学习。写这个学习笔记的目的,一个是为了自己备忘,二则希望能够为其他人学习使用ma
2016-06-02 10:53:36
554
tornado22tornado22tornado22tornado22tornado22
2010-03-08
偏微分方程偏微分方程偏微分方程
2009-07-24
matlab matlab
2009-07-24
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人