本文的lucene是基于lucene3.5版本.
使用lucene实现搜索引擎开发,核心的部分是建立索引和搜索。本节主要是记录创建索引部分的内容。
创建的索引结构如图所示。
创建索引的步骤分为以下几个步骤:
1、建立索引器IndexWriter
2、创建文档对象Document
3、建立信息对象字段Field
4、将Field对象添加到Document
5、将Document对象添加到IndexWriter对象中
下面简要介绍几个核心对象。
(1)、创建IndexWriter对象。
IndexWriter writer=new IndexWriter(directory, iwc)。
directory是创建的索引要保存的路径,如果要保存在硬盘中则使用Directory directory = FSDirectory.open(new
File(path))创建一个directory对象。
如果要保存在内存中则使用:RAMDirectory directory=new RAMDirectory()创建一个directory对象。
(2)、创建Document对象。
Document doc =new
Document();创建了一个不含有任何Field的空Document,如果要要Field添加到Document中,则使用add(Field)方法即可实现。
doc.add(field)。
(3)、创建Field对象。
Field field=new Field(Field名称,Field内容,存储方式,索引方式);
存储方式分为3种:1、完全存储(Field.Store.YES);2、不存储(Field.Store.NO);3、压缩存储(Field.Store.COMPRESS)。
索引方式分为4种:1、不索引(Field.Index.NO);2、 Field.Index.ANALYZED
;3、 Field.Index.NOT_ANALYZED;4、Field.Index.NOT_ANALYZED_NO_NORMS
创建一个简单的索引程序代码如下所示:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
|
lucene学习-创建索引