lucene在实际项目开发中遇到的一些问题及解决方法

问 题 一:用户输入一些lucene保留字搜索,会造成后台抛出异常。保留字:+ - & | ! ( ) { } [ ] ^ ~ * ? : \ AND OR NOT
场    景:用户输入“+”,然后提交搜索,系统后台会抛异常。
处理方式:对于用户输入的特殊字符在查询前要进行过滤或替换或转义。

问 题 二:lucene在linux中运行,如果linux没有启用filesystem lock服务,lucene会抛出异常,导致无法正常读写索引。
场    景:本地winXP系统下测试lucene没有问题,但是放到linux下一直抛异常,然来是linux系统默认下没有启用filesyste lock服务。
处理方式:启用filesystem lock服务。执行命令:/etc/init.d/nfslock start。

问 题 三:lucene高亮显示时,如果搜索内容中包含特殊字符,会导致无法正常高亮显示。
场    景:比如“10/20/30”,用户搜索“10”,结果应该是“10/20/30”,10应为高亮色。但是由于“10/20/30”中含有“/”字符,导致10没有高亮显示。
处理方式:可以在高亮显示前对“/”进行转换,转成全角。

问 题 四:lucene在写过程中避免文件被锁住
场    景:当生成索引文件时,会生成一个write.lock文件锁定当前索引,避免并发操作,这时候再试图更新此索引文件,是会抛异常的,导致无法更新索引。
处理方式:一是代码本身规范,在写处理完时要记得调用lucene的方法释放锁,在finally中调用。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值