对Lucene的一点点认识

01Lucene支持类似操作数据库一样的建库和索引的机制,这里建库成为“写入”,索引成为“读出”。

02写入流程:

Writer包含Analyzer,将所需记录加入库中,填充其字段,添加所需字段的索引,进行存储。

03读出流程:

Reader(同样包含Analyzer)根据关键词,访问库的所有Document, 提取所需的字段,构造生成文档。

04Analyzer

Analyzer提供去冗余、去无效词的机制,实现分词管理,其过滤基于语义。

05数据结构

A、term是一个文本类,包含关键词和关键词的字段。

B、filed是字段,可这样设置,类似于“关键词所在文章的标题”、“所在文章的正文”、“所在文章的最后修改时间”

C、tocken继承了term的特性,另外也包含term的起止偏移点,以及一个类型字符串。tocken标记了关键词实例的位置,而term仅仅是词语的一个class,同种关键词若位置不同则使用不同的tocken。

D、Segment

Segment是Document的子文件,Document具备分割性和组成特性。

06 Luncene全面支持token安全令牌的规约,对库的安全查询提供支持。

07 一个简单的代码实例

IndexWriter writer = new IndexWriter(“/data/index/”, new StandardAnalyzer(), true);//在路径“/data/index/”上创建writer,包含analyzer

Document doc = new Document();//新建数据库文档

doc.add(new Field("title", "lucene introduction", Field.Store.YES, Field.Index.TOKENIZED));

doc.add(new Field("content", "lucene works well", Field.Store.YES, Field.Index.TOKENIZED));//在document里面创建字段title\lucene intro\content\lucene work well

writer.addDocument(doc);//将doc导入writer写入器,doc相当于数据库的一行

writer.optimize();//字符去冗余

writer.close();//关闭writer

你可能感兴趣的:(对Lucene的一点点认识)