2       索引读取阶段 当希望通过一个DocId得到Doc的全部内容,那么就需要对fdx/fdt文件进行读操作了.具体的代码在CompressingStoredFieldsReader类里面.与CompressingStoredFieldsWriter一样,这些操作都是建立在fdx/fdt文件格式理解的基础上. 既然前面有一个比喻:如果fdt是一本书的正文,那么fdx则是书的目录.那么通过docID来得到doc全部内容的这个过程则是需要两个文件联合起来发挥作用. 具体的过程如下: 第一步:…
前言 通常在搜索打分完毕后,IndexSearcher会返回一个docID序列,但是仅仅有docID我们是无法看到存储在索引中的document,这时候就需要通过docID来得到完整Document信息,这个过程就需要对fdx/fdt文件进行读操作.为了更清楚地了解fdx/fdt文件的作用,本文把fdx/fdt文件的读和写整合到了一起,尽管这在Lucene中是两个分开的过程. 1. 索引生成阶段 索引生成阶段包含着一个复杂的过程,所以了解本文前最好对Lucene的索引架构有一定的了解,可以参考博…
因为在忙其他事情好久没有更新iview的源码,也是因为后面的一些组件有点复杂在考虑用什么方式把复杂的功能逻辑简单的展示出来,还没想到方法,突然想到element的组件基本也差不多,内部功能的逻辑也差不多,就一起来看源码,element用的css预处理器是sass. 项目结构 build:放置webpack的配置文件. examples:放置element api的页面文档. packages:放置element的组件(css样式放置在这个目录下theme-chalk下). src/directi…
[源码解析] 并行分布式任务队列 Celery 之 负载均衡 目录 [源码解析] 并行分布式任务队列 Celery 之 负载均衡 0x00 摘要 0x01 负载均衡 1.1 哪几个 queue 1.1.1 _brpop_start 选择下次读取的queue 1.1.2 round_robin_cycle 设置下次读取的 queue 1.2 哪一个worker 1.3 哪一个进程 1.3.1 策略 1.3.2 公平调度 1.3.3 公平调度 in Celery 0x02 Autoscaler 2.…
协议简析 UserInfo接口是OAuth2.0中规定的需要认证访问的接口,可以返回认证用户的声明信息.请求UserInfo接口需要使用通行令牌.响应报文通常是json数据格式,包含了一组claim键值对集合.与UserInfo接口通讯必须使用https. 根据RFC2616协议,UserInfo必须支持GET和POST方法. UserInfo接口必须接受Bearer令牌. UserInfo接口应该支持javascript客户端跨域访问,可以使用CORS协议或者其他方案. UserInfo请求…
Python2 基本数据结构源码解析 Contents 0x00. Preface 0x01. PyObject 0x01. PyIntObject 0x02. PyFloatObject 0x04. PyStringObject 0x05. PyListObject 0x06. PyDictObject 0x07. PyLongObject 0x00. Preface 一切皆对象,这是Python很重要的一个思想之一,虽然在语法解析上有些细节还是不够完全对象化,但在底层源码里,这个思想还是贯穿…
趁着端午节日,自己没有什么过多的安排,准备花4-5天左右,针对网络请求源码AFNetworking和YTKNetwork进行解析以及这两年多iOS实际开发经验(其实YTKNetwork也是对AFNetworking的深度封装),结合多个实际项目,分别针对这两个网络框架,进行封装使用(可以直接使用).本篇主要讲解AFNetworking源码解析,都是自己亲自看AFNetworking源码以及心得体会,大约看下来需要20-30分钟.欢迎指正!!! AFNetworking源码地址:https://g…
[源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 目录 [源码解析] 深度学习分布式训练框架 horovod (18) --- kubeflow tf-operator 0x00 摘要 0x01 背景知识 1.1 Kubernetes 1.2 容器作为调度单元 1.3 Kubeflow 1.4 Tensorflow on Kubeflow 1.5 Operator 1.6 TF-Operator 0x02 TensorFlow 分布…
前面了解了jdk容器中的两种List,回忆一下怎么从list中取值(也就是做查询),是通过index索引位置对不对,由于存入list的元素时安装插入顺序存储的,所以index索引也就是插入的次序. Map呢是这样一种容器,它可以存储两个元素键和值,根据键这个关键字可以明确且唯一的查出一个值,这个过程很像查字典,考虑一下使用什么样的数据结构才能实现这种效果呢?   1.自己实现一个Map        先来看一下jdk中map的定义:      public interface Map<K,V>…
1,今天和大家一起从底层看看Handle的工作机制是什么样的,那么在引入之前我们先来了解Handle是用来干什么的 handler通俗一点讲就是用来在各个线程之间发送数据的处理对象.在任何线程中,只要获得了另一个线程的handler,则可以通过 handler.sendMessage(message)方法向那个线程发送数据.基于这个机制,我们在处理多线程的时候可以新建一个thread,这个thread拥有UI线程中的一个handler.当thread处理完一些耗时的操作后通过传递过来的handl…