您的位置:首页 > 其它

lucene token解析

2015-10-14 09:02 337 查看
Lucene的analysis模块主要负责词法分析及语言处理而形成Term.

Lucene的index模块主要负责索引的创建,里面有IndexWriter.

Lucene的store模块主要负责索引的读写。

Lucene的QueryParser主要负责语法分析。

Lucene的search 模块主要负责对索引的搜索。

Lucene的similarity模块主要负责对相关性打分的实现。

lucene源码组件

org.apache.lucene.analysis语言分析器,主要用于的切词,支持中文主要是扩展此类
org.apache.lucene.document索引存储时的文档结构管理,类似于关系型数据库的表结构
org.apache.lucene.index索引管理,包括索引建立、删除等
org.apache.lucene.store数据存储管理,主要包括一些底层的I/O操作
org.apache.lucene.search搜索管理,根据搜索条件进行查询
org.apache.lucene.util一些公用类
org.apache.lucene.queryParser查询分析器,实现查询关键词间的运算,如与、或、非等


org.apache.lucene.analysis.TokenStream

  

org.apache.lucene.analysis.Tokenizer

token是分词组件,tokenStream 是一些token序列组成的。tokeizer是抽象类。public abstract class [b]Tokenizerextends TokenStream。[/b]

tokenStrem的形成:

analysis通过对文本的分析来建立TokenStream(分词数据流),tokenStream是有一个个token组成。所以说analyzer就代表着一耳光从文本数据中抽取索引词(term)的一种策略。

token和term的关系:

收集带建索引的原始文档(document)

将原始文档传递给词条化工具(tokenizer)进行文本词条化

将得到的词条(token)传递给语言分析工具(linguistic Modules)处理得到term

得到的term传递给索引组件indexer进行构造倒排索引

tokenstream是从doucment的域(field)中抽取的一个个分词而组成的一个数据流。tokenstream中是一个个的分词。而每个分词优势由一个个的属性组成。

tokenstream的作用就是从给入的文本中不断解析础token,具体的做法是tokenStream有方法incrementToken,每次调用,将产生待分析文本的下一个token.

使用场景;

QueryParser parser = new QueryParser(Version.LUCENE_36, field, analyzer);

Query query = parser.parse(queryString);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: