创建索引
创建索引的基本方式
创建索引的过程
1, 建立索引器IndexWriter
2, 建立文档对象Document
3, 建立信息字段对象Field
4, 将Field添加到Document里面
5, 将Document添加到IndexWriter
6, 关闭IndexWriter
创建Field
Field field=new Field(Field名称,Field内容,存储方式,索引方式)
参数的含义:
Field名称:就是Field起的名字,类似数据表的字段名称
Field内容:Field的内容,类似数据表的字段内容
存储方式:
不存储 | Field.Store.No | 索引太大的情况,不利于效率,如正文 |
完全存储 | Field.Store.Yes | 索引不太大的情况,如标题 |
压缩存储 | Field.Store.Compress | 索引内容较多的情况,如正文 |
索引方式:
索引方式 | 理解 | 应用 |
Field.Index.No | 不索引 | 只需要跟着搜索结果显示出来却不需要按照其内容进行搜索 |
Field.Index.TOKENIZED | 索引并分词 | 适合模糊搜索,如标题,全文 |
Field.Index.NO_NORMS | 索引但不分析 |
|
Field.Index.UN_TOKENIZED | 索引但不分词 | 适合精确搜索 |
创建Document
Document doc=new Document()
创建一个不含有任何Field的空的Document.
添加Field
doc.add(field);
创建Index Writer
IndexWriter writer=new IndexWriter(存放索引的路径,分析器的实例);
IndexWriter writer=new IndexWriter(“myindex”,new CJKAnalyzer());
添加Document
Writer.addDocument(doc);
关闭索引器
Writer.close();
创建索引实例
简单索引:SimpleIndexer
package example.example;
import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.analysis.standard.StandardAnalyzer;
public class SimpleIndexer { public static void main(String[] args) throws java.io.IOException { //指定索引存放路径 String indexPath = "./myindex";
//创建索引实例 IndexWriter writer = new IndexWriter(indexPath,new StandardAnalyzer());
//创建Document Document doc = new Document();
//创建Field String title = "Hello Lucene World"; Field field = new Field("title",title ,Field.Store.YES, Field.Index.TOKENIZED); //添加 field doc.add(field);
//创建Field String content = "lucene is a kind of open source tool to make us easy to search the world"; field = new Field("content", content ,Field.Store.YES, Field.Index.TOKENIZED); //添加 field doc.add(field);
//添加 document writer.addDocument(doc);
//关闭 IndexWriter writer.close();
//message System.out.println("成功建立索引!"); } } |