- 博客(12)
- 收藏
- 关注
原创 lucene索引源码分析2
上一篇文章大概讲了索引从indexwriter到defaultindexchain的过程,也分析了defaultindexchain的基本流程,主要就是:将dwpt接收的每个文档一条条处理---》对每一条文档再按Field依次处理---》对每个Field依据他是否分词,是否存储是否有docvalue再分别处理。可见每个dwpt之间是并行的做事情,每个dwpt内是串行的做事情。每个f
2016-09-30 16:09:40
1311
原创 lucene索引源码分析1
前面的一些文章主要分析了一些solr索引处理的流程,和索引文件打交道的是lucene的工作,下面我们基于lucene5.3.1对它的索引流程进行分析。在开始前请允许我盗图一张,下面是lucene索引链的流程图我们一般用IndexWriter写索引的代码如下:indexWriter.addDocument(doc1);或者indexWriter.addDocument
2016-09-02 09:54:01
1446
原创 solr索引过程源码解析
在文章http://blog.youkuaiyun.com/jj380382856/article/details/51603818我们分析了更新索引的solrj源码的处理方式,最后会向solr发送一个/update的请求,下面我们继续分析solr在接收到这个请求会怎么处理。1.请求首先被SolrDispatchFilter截获,然后执行dofilter方法2.在方法中调用 Action result
2016-08-18 14:49:57
2524
原创 ansj源码浅析3
上一篇我们讲到了利用核心词典和用户定义词典以及双数组将字符串分词形成了一个数组链表(graph),下面我们继续分析getResult(Graph graph)函数,此函数来自于Analysis类是一个抽象函数,里面有个抽象类和抽象方法,需要用户继承并自定义实现protected abstract List getResult(Graph graph); public abstract c
2016-08-16 15:13:30
936
原创 ansj源码浅析2
在上一篇文章http://blog.youkuaiyun.com/jj380382856/article/details/52174225里我们对ansj的流程做了简单的分析,下面我们主要来看ansj中graph的构造以及应用过程。先贴出上一篇文章中分析过的函数:private void analysisStr(String temp) { Graph gp = new Graph(temp);/
2016-08-11 10:54:45
1179
原创 ansj源码浅析1
开始之前先盗个图,下图是lucene分词结构的类关系图,可以看出所有的分词流都是基于TokenStream来做的。它下面有两个继承类,一个是来分词的(Tokenizer),一个是来过滤的(TokenFilter)。我们主要来分析分词的类。ansj分词器的构造函数如下 public AnsjTokenizer(Analysis ta,String stopwordsDir, bool
2016-08-10 17:06:57
1831
原创 基于lucene的mr索引程序的实现
之前做过一个基于solrJ的mr索引程序,性能并不理想,想着solr的底层就是lucene,所以我用相应版本的lucene做了一个mr程序,程序性能提高了30-40倍(同样的分词器),实验证明创建出来的索引能被solrcloud识别,此程序只用到了map过程,生成的文件最后经过一次本地的合并形成最终的索引。下面放出部分主要程序代码:public static class TestM
2016-07-20 15:24:34
622
原创 java同步互斥,生产者消费者
下面的例子模拟了一个生产者消费者的同步场景,在生产者生产的时候加入了仓库的容量和当前放置数的比较,注释写的很清楚,有问题请留言public class ThreadTest { /** * 仓库 * * @author jinjing * */ class WareHouse { private int num; private int max_
2016-06-14 14:16:01
676
原创 cloudsolrclient的add方法分析
cloudsolrclient的add方法调用的是父类solrclient的add方法 public UpdateResponse add(String collection, Collection docs, int commitWithinMs) throws SolrServerException, IOException { UpdateRequest req = new U
2016-06-07 15:01:27
3909
原创 solrcloud有路由的mapreduce索引程序
前几天遇到了大数据量的上传问题,上传速度一直很慢,看到网上有文章实现了有路由的mr索引程序,所以我也写了一个程序如下:public class MapReduceWithRoute extends Configured implements Tool {/*** * @param args* @throws Exception*/public s
2016-06-03 09:56:23
1440
原创 HttpSolrCall源码分析
HttpSolrCall是solr底层发送http请求的中转站,首先看一下它的构造函数public HttpSolrCall(SolrDispatchFilter solrDispatchFilter, CoreContainer cores, HttpServletRequest request, HttpServletResponse response, b
2016-05-04 14:12:28
519
原创 solr源码入门1
在本文中,solr作为一个封装了lucene的web服务我们首先看一下solr的web.xml solr/home java.lang.String E:\\solr_home SolrRequestFilter org.apache.solr.servlet.SolrDispatchFilter ex
2016-04-26 14:38:48
558
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人