lucene功能四;索引库的维护;索引库的添加;修改;删除;及代码实现;代码示例

1. 功能四:索引库的维护

1.1. 索引库的添加

1.1.1. 步骤

向索引库中添加document对象。

第一步:先创建一个indexwriter对象

第二步:创建一个document对象

第三步:把document对象写入索引库

第四步:关闭indexwriter

 

1.1.2. 代码实现

//添加索引

@Test

public void addDocument()throws Exception {

1//索引库存放路径

Directory directory = FSDirectory.open(new File("D:\\temp\\0108\\index"));

2//indexWriter的配置

IndexWriterConfig config =new IndexWriterConfig(Version.LATEST,new IKAnalyzer());

3//创建一个indexwriter对象

IndexWriter indexWriter = new IndexWriter(directory, config);

4//创建一个Document对象

Document document = new Document();

//向document对象中添加域。

5//不同的document可以有不同的域,同一个document可以有相同的域。

document.add(new TextField("filename","新添加的文档", Store.YES));

document.add(new TextField("content","新添加的文档的内容", Store.NO));

document.add(new TextField("content","新添加的文档的内容第二个content", Store.YES));

document.add(new TextField("content1","新添加的文档的内容要能看到", Store.YES));

6//添加文档到索引库

indexWriter.addDocument(document);

7//关闭indexwriter

indexWriter.close();

}

 

1.2. 索引库删除

1.2.1. 删除全部

//删除全部索引

@Test

public void deleteAllIndex()throws Exception {

IndexWriter indexWriter = getIndexWriter();

//删除全部索引

indexWriter.deleteAll();

//关闭indexwriter

indexWriter.close();

}

 

说明:将索引目录的索引信息全部删除,直接彻底删除,无法恢复。此方法慎用!!

 

1.2.2. 指定查询条件删除

//根据查询条件删除索引

@Test

public void deleteIndexByQuery()throws Exception {

IndexWriter indexWriter = getIndexWriter();

//创建一个查询条件  第一个参数是域名称,第二个是条件

Query query = new TermQuery(new Term("filename","apache"));

//根据查询条件删除

indexWriter.deleteDocuments(query);

//关闭indexwriter

indexWriter.close();

}

 

1.3. 索引库的修改

原理就是先删除后添加。

//修改索引库

@Test

public void updateIndex()throws Exception {

IndexWriter indexWriter = getIndexWriter();

//创建一个Document对象

Document document = new Document();

//向document对象中添加域。

//不同的document可以有不同的域,同一个document可以有相同的域。

document.add(new TextField("filename","要更新的文档", Store.YES));

document.add(new TextField("content","2013年11月18日 - Lucene 简介 Lucene 是一个基于 Java 的全文信息检索工具包,它不是一个完整的搜索应用程序,而是为你的应用程序提供索引和搜索功能。", Store.YES));

indexWriter.updateDocument(new Term("content","java"), document);

//关闭indexWriter

indexWriter.close();

}

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值