Lucene
三万棵树
程序员
展开
-
3.解析Lucene-StandardAnalyzer类之---“左膀右臂”(2)。
上回书整说道StandardAnalyzer类又伟岸的身躯和强大的左膀右臂,咱们书接前文。先说说IOUtils这个类: 不啰嗦看源码:英文注释上看,此类是用来读取配置文件,停止词,同义词。那为什么要用这么个方式?因为直接的Java中bytes到String的转换会造成数据的改变。具体请参见一篇博客。点击点击打开链接。 public static Reader getD...原创 2018-12-08 16:23:26 · 188 阅读 · 0 评论 -
10.解析Lucene-Analyzer之HMM中文分词
本文主要分析Analyzer中的中文分词,所用到的技术是HMM。原创 2018-12-08 16:21:19 · 97 阅读 · 0 评论 -
9.解析Lucene-Analyzer整体流程
已经分析完了,Analyzer的全部相关代码。如果不知道它工作的整体流程的话,还是会迷糊的。这一节,就结合eclipse。分布调试功能。看看这个Analyzer类到底是如何工作的。 ...原创 2018-12-08 16:21:31 · 212 阅读 · 0 评论 -
8.解析Lucene-StandardAnalyzer类之---心脏(Tokenizer)。
Analyzer包含两个核心组件,Tokenizer以及TokenFilter。两者的区别在于,前者在字符级别处理流,而后者则在词语级别处理流。Tokenizer是Analyzer的第一步,其构造函数接收一个Reader作为参数,而TokenFilter则是一个类似的拦截器,其参数可以是TokenStream、Tokenizer。先看类图: 其实可以看到这个类图中,...原创 2018-12-08 16:21:56 · 670 阅读 · 0 评论 -
7.解析Lucene-StandardAnalyzer类之---心脏(TokenFilter再继续)。
首先还是贴出来,整体TokenFilter的类图,因为前两节讲述了太多别的技术点,但是别忘了最重要的。 分析完成Attribute以后,我们继续往下分析Tokenstream类,他的代码很简单:package org.apache.lucene.analysis;import java.io.IOException;import java.io.Closeable;imp...原创 2018-12-08 16:22:10 · 495 阅读 · 0 评论 -
6.解析Lucene-StandardAnalyzer类之---心脏(TokenFilter中Attribute)。
上一篇文章中讲述了AttributeSource。我们知道它是对Attribute进行管理的一个类。那么这一次我们要看看,什么是Attribute了。还是少啰嗦,先看类图: 类图看起来很简单的,但是里边还是隐藏了一些玄机,首先每个Attribute对应着一个AttributeImpl。这个AttributeImpl是在代码中使用情况是;priv...原创 2018-12-08 16:22:51 · 405 阅读 · 0 评论 -
2.解析Lucene-StandardAnalyzer类之---“左膀右臂”(1)。
上一篇文章中对Analyzer虚基类进行了详细的解读,那么这篇文章就对它的一个实现进行详细的理解,这就是StandardAnalyzer。少啰嗦,先看类图: 话说当日我正在写博客,当贴上此图的时候,忽然突发想象。该图多像“八臂哪吒”。左边的CharArraySet,WordlistLoader,右边的IOUtils,StopAnalyzer都是它的“手臂”。而图中那(St...原创 2018-12-08 16:23:38 · 251 阅读 · 0 评论 -
1.解析Lucene-Analyzer类。
今天开始研究发表自己对Lucene源码的一些研究,一来是为了检验自己学习的深入情况,二来是为了有一个记录以方便后续的研究查阅。其实对Lucene研究已经有一些日子,随着研究的模块越来越多。涉及的内容也越来越多。所以萌生了撰写博客的念头。Lucene的主要模块有Lucene的analysis模块主要负责词法分析及语言处理而形成Term。 Lucene的index模块主要负责索引的...原创 2018-12-08 16:23:03 · 425 阅读 · 0 评论 -
5.解析Lucene-StandardAnalyzer类之---心脏(TokenFilter中AttributeSource)。
Analyzer包含两个核心组件,Tokenizer以及TokenFilter。他们各司其职完成对数据的分析。Tokenizer是字符级别处理流,TokenFilter在词语级别处理他更像是一个分析处理过滤器,我么先份子Tokenizer。少啰嗦,先看类图: 这是一个比较难分析的模块了,需要好好仔细研究。AttributeSource中也包含了很多内容。但...原创 2018-12-08 16:22:22 · 360 阅读 · 0 评论 -
4.解析Lucene-StandardAnalyzer类之---身躯。
通过前两篇博文,我们已经大致了解了StandaAnalyzer的所依赖的一些类,我们戏称它为左膀右臂。现在是时候了解一下他真正的身躯了。为了便于分析,先贴出它的类图。 我们先看StopwordAnalyzerBase。public abstract class StopwordAnalyzerBase extends Analyzer { //用来保存停止次 ...原创 2018-12-08 16:23:15 · 373 阅读 · 0 评论 -
11.解析Lucene-Analyzer之HMM中文分词改写----支持词性标注
上一篇文章,详解了隐马定理以后,本篇文章对它进行改写,使它支持词性标注。原创 2018-12-08 16:21:06 · 220 阅读 · 0 评论