# index_box 提供搜索功能的实现- 持有std::vector<ITEM> _buffer; 存储所有文章信息- 持有ForwardIndex _forward_index;    - _forward_index.build_findex( _buffer )    - get_all_items _forward_index.get_all_items    - get_items _forward_index.get_items(docid_vect, result, filt…
# 1.forward_index 正排索引(正向索引)- filter_t- filter_judge # 2.inverted_index 倒排索引(反向索引)- inverted_pre_scoring_t # 3.index_box 提供搜索功能的实现- 1.2 # 4.search_index 对文章根据语言.地域.类型进行分块索引- 3 # 5.part_indexer 对文章根据id的hash进行分块索引- 4 # 6.index_helper index_manager使用的辅助…
# index_manager的单例是index server对外的唯一接口,part_indexer是index搜索的核心部分,index_manager持有了一组part_indexer. typedef std::vector<std::shared_ptr<part_indexer>> part_indexers;part_indexers _part_indexers; index_manager.init- 对incremental和history两种索引从文件或内存进…
# part_indexer 对文章根据id的hash进行分块索引- 持有 search_index _inc_index[2]; search_index _history_index[2]; 进行实际的搜索操作- get_size 调用search_index的search- get_all_items 调用search_index的get_all_items- search 根据条件获取一批文章    - 传入user_profile_t.search_params_t.filter_ju…
Redis数据类型之LIST类型 - Web程序猿 - 博客频道 - CSDN.NEThttp://blog.csdn.net/thinkercode/article/details/46565051 Redis的list是一个双向链表,应用场景很多,比如微博的关注列表,粉丝列表等都可以用Redis的list结构来实现:博客实现中,可为每篇日志设置一个list,在该list中推入进博客评论:也可以使用Redis list实现消息队列. # list命令- LPUSH/RPUSH    - LPU…
尝试一些用KNN来做数字识别,测试数据来自:MNIST handwritten digit database, Yann LeCun, Corinna Cortes and Chris Burgeshttp://yann.lecun.com/exdb/mnist/ 1.数据将位图转为向量(数组),k尝试取值3-15,距离计算采用欧式距离.d(x,y)=\sqrt{\sum_{i=1}^{n}(x_i-y_i)^2} 2.测试调整k的取值和基础样本数量,测试得出k取值对识别正确率的影响,以及分类识…
gosuri/uiprogress: A go library to render progress bars in terminal applicationshttps://github.com/gosuri/uiprogress 依赖go-isatty,用于判断程序是在什么终端运行https://github.com/mattn/go-isatty 依赖uilive,提供一个定时刷新的命令行输出https://github.com/gosuri/uilive uiprogress.Start…
google/protobuf: Protocol Buffers - Google's data interchange formathttps://github.com/google/protobuf Protocol Buffer,简称protobuf,是谷歌出品的一个序列化库,用于在不同系统.模块.语言间交换数据. Google Protocol Buffer 的使用和原理http://www.ibm.com/developerworks/cn/linux/l-cn-gpb/index.…
理解RESTful架构 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2011/09/restful.html RESTful API 设计指南 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2014/05/restful_api.html RESTful API 设计最佳实践-CSDN.NEThttp://www.csdn.net/article/2013-06-13/2815744-RESTful-API Microso…
信息论的熵 - guisu,程序人生. 逆水行舟,不进则退. - 博客频道 - CSDN.NEThttp://blog.csdn.net/hguisu/article/details/27305435 熵(entropy)的计算公式如下:H_x=-\sum_{i=1}^{n}p(x_i)\log_{2}{p(x_i)} <机器学习实战>基于信息论的三种决策树算法(ID3,C4.5,CART) - Thinkgamer博客 - 博客频道 - CSDN.NEThttp://blog.csdn.ne…
Zookeeper是hadoop的一个子项目,提供分布式应用程序协调服务. Apache ZooKeeper - Homehttps://zookeeper.apache.org/ zookeeper原理(转) - 翻过这座山,就到菩提洞了 - ITeye技术网站http://cailin.iteye.com/blog/2014486/ zookeeper场景 - 翻过这座山,就到菩提洞了 - ITeye技术网站(ZooKeeper典型应用场景一览)http://cailin.iteye.com…
直接写shell固然也很好,但是用python来写脚本,也是美滋滋.fabric是一个封装部署.多机操作等功能的python库. Welcome to Fabric! - Fabric documentationhttp://www.fabfile.org/index.html sudo yum -y install epel-releasesudo yum -y install python-pippip install --upgrade pippip install fabric Pyth…
record_t包含_sum._count._time_stamp._max._min最基础的一条记录,可以用来记录最大值.最小值.计数.总和metric_t含有RECORD_NUM(6)份record_t,当metric_t::add调用时更新record_t的内容 metric_t包含_name._records[6]._sample_vals[500]._threshold_rate._cursor._operation._cur_time_stampmonitor_data_t含有MET…
daviddengcn/go-colortext: Change the color of console text.https://github.com/daviddengcn/go-colortext dixonwille/wlog: A simple logging interface that supports cross-platform color and concurrency.https://github.com/dixonwille/wlog package main impo…
go自带json处理库,位于encoding/json,里面的test很具参考意义,特别是example_test.go json - The Go Programming Languagehttps://golang.org/pkg/encoding/json/ GO语言练习:构建json 和 解析JSON 实例 - fengbohello - 博客园http://www.cnblogs.com/fengbohello/p/4665883.html - Marshal    - 字符串将以UT…
package分包.import导入包import . "package1"  省略前缀包名import p1 "package1" 起别名import _ "package1" 执行包里的init函数 golang之package - Go语言中文网 - Golang中文社区http://studygolang.com/articles/5831 Go:如何组织代码 - 幸福框架 - 博客园http://www.cnblogs.com/happ…
redigo有点像hiredis,只提供了最基本的连接和执行命令接口. 找到个不错的redis库: https://github.com/go-redis/redis func ExampleNewClient() {     client := redis.NewClient(&redis.Options{         Addr:     "localhost:6379",         Password: "", // no password se…
一个朋友写的日志库 https://github.com/vizee/echo go get -u -v github.com/vizee/echo package main import (     "errors"     "os"     "github.com/vizee/echo" ) func main() {     echo.SetOutput(os.Stdout)     echo.SetLevel(echo.DebugLeve…
#method    - Methods        - Go does not have classes. However, you can define methods on types.        - func (f MyFloat) Abs() float64 {    - Interfaces        - type Abser interface { Abs() float64 }        - One of the most ubiquitous interfaces…
# flowcontrol    - for        - for i := 0; i < 10; i++ {        - for ; sum < 1000; {        - For is Go's "while" - for sum < 1000 {        - Forever - for {    - if        - if x < 0 {        - } else {        - if v := math.Pow(x…
# A Tour of Go    - go get golang.org/x/tour/gotour    - https://tour.golang.org/    # welcome    - fmt.Println("The time is", time.Now()) # basic    - Packages && Imports        - package main        - import (\n    "fmt"\n  …
Downloads - The Go Programming Languagehttps://golang.org/dl/ - windows下的开发环境    - 下载go1.8.1.windows-amd64.msi安装    - eclipse安装GoClipse,设置GOROOT为go安装路径    - 将go安装目录下的bin目录加到PATH环境变量    - go build- centos6下的开发环境    - wget https://storage.googleapis.co…
正如Redis似乎是为替换memcached一样,SSSB是一个国人开发的旨在替换Redis的kv数据库. SSDB - 高性能的支持丰富数据结构的 NoSQL 数据库, 替代 Redishttp://ssdb.io/zh_cn/ idea's blog - SSDBhttp://www.ideawu.net/blog/category/ssdb Redis 的竞争对手 SSDB是否真的能替代Redis呢? - SDK.CN - 中国领先的开发者服务平台https://sdk.cn/news/2…
memcached - a distributed memory object caching systemhttp://memcached.org/ Memcached 教程 | 菜鸟教程http://www.runoob.com/Memcached/Memcached-tutorial.html memcached完全剖析–1. memcached的基础_知识库_博客园http://kb.cnblogs.com/page/42731/ 缓存技术PK:选择Memcached还是Redis?-I…
Hadoop的核心是HDFS和MapReduce,而两者只是理论基础,不是具体可使用的高级应用,Hadoop旗下有很多经典子项目,比如HBase.Hive等,这些都是基于HDFS和MapReduce发展出来的.Hadoop Distributed File System,简称HDFS,是一个分布式文件系统.MapReduce是一套从海量源数据提取分析元素最后返回结果集的编程模型.Hadoop典型应用有:搜索.日志处理.推荐系统.数据分析.视频图像分析.数据保存等. 什么是HDFS及HDFS架构设…
Sentinel - Redis 命令参考http://doc.redisfans.com/topic/sentinel.html#sentinel-api Guidelines for Redis clients with support for Redis Sentinel – Redishttps://redis.io/topics/sentinel-clients Redis的哨兵模式可以监控多个Redis实例,当一个master不能正常工作时, Sentinel 会开始一次自动故障迁移…
在提供api给其它应用使用时,有时我们会要限制它的跨域使用,而有时,我们又要用CORS来打破AJAX只能同源使用的限制 跨域资源共享 CORS 详解 - 阮一峰的网络日志http://www.ruanyifeng.com/blog/2016/04/cors.html 总结:1.浏览器发出CORS请求,即在访问时http头里增加一个Origin字段2.服务端判断Origin,然后在返回的http头里增加Access-Control-Allow-Origin.Access-Control-Allow…
protobuf序列化速度不错,在往Redis里存对象时,用protobuf序列化可以节省内存,省去写序列化反序列化代码的工作. google protocol buffer 与 redis 结合使用 - 噬日者 - 博客频道 - CSDN.NEThttp://blog.csdn.net/eclipser1987/article/details/8534669 hiredis 保存protobuf序列化后的二进制数据 - Mr_李辉https://my.oschina.net/u/1765027…
前面学习了Pthreads,了解了线程和线程同步,而同步这个东西,与信号量是密不可分的.下面讨论的主要是Pthreads里的semaphore.h,而不是sys/sem.h [Linux]线程同步之信号量同步 - 江南烟雨 - 博客频道 - CSDN.NEThttp://blog.csdn.net/xiajun07061225/article/details/8467853 # 基本结构和概念- sem_t 信号量- P(sv):如果sv的值大于零,就给它减1:如果它的值为零,就挂起该进程的执行…
BlockingQueue,阻塞队列,常用于实现生产者和消费者模型特点:1.队列为空时,取操作会等到队列有数据2.队列满时,存操作会等到队列可用 基于C++11的阻塞队列简单实现 - Cynric 的博客 - 博客频道 - CSDN.NEThttp://blog.csdn.net/cywosp/article/details/9157379 参考java的阻塞队列实现,还可以有以下细节:1.ArrayBlockingQueue用数组来存队列里的数据,可以避免用链表时额外的node对象创建销毁开销…