lucene3.0更新索引时原索引不删除的问题

使用LUCENE3.0更新索引时,发现原索引不删除,更新后索引显示两条,解决过程记录一下:

 1、将IndexWriter writer = new IndexWriter(FSDirectory.open(indexPath), analyzer, false, IndexWriter.MaxFieldLength.LIMITED);

  改为:IndexWriter writer = new IndexWriter(FSDirectory.open(indexPath), analyzer,true, IndexWriter.MaxFieldLength.LIMITED);

  则每次更新后都将以前的索引删除,重新生成了一个只有当前记录的索引文件。

2、网上一朋友说需要将索引中类似主键的那个field设置为Field.Index.ANALYZED,经测试未果。

3、我原来用的url字段作为主键,即:

  writer.updateDocument(new Term("url", String.valueOf(field.get("url"))), doc);

  怀疑是其问题,改为title:

  writer.updateDocument(new Term("title", String.valueOf(field.get("title"))), doc);

  无效,改为id:

  writer.updateDocument(new Term("id", String.valueOf(field.get("id"))), doc);

  搞定!!!

  之前加索引时未加入id字段,本来想省事,用url当主键凑合用,结果出现这个问题,似乎是由于url中有特殊字符、title中含有中文,所以无效,但未查相关文档,不是很确定。

 

  软件产品网http://www.soft78.com是为广大软件企业提供的一个软件产品、解决方案与成功案例的网络展示、宣传、推广平台,是为软件需求企业或个人提供的一个综合性的软件选型平台。
  软件产品网提供国内最全的软件产品、解决方案信息,如果您的产品还没有加入到我们的产品库中,请立即与我们联系。
  软件产品网为您提供专业、客观的软件评测信息,为您购买软件提供最专业的参考。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值