用lucene的注意事项(抛砖引玉)

1.同一个索引目录,IndexWriter和IndexReader确保要唯一,他们两个都是线程安全的,可以被多个线程调用。 让专门的类去管理(实例化和销毁)IndexWriter和IndexReader。

2.尽量减少不必要的储存,只储存哪些要在返回结果里的字段,不需要检索的内容就不要建索引。索引太大了,对更新索引的效率都会有影响。

3.不要强制kill建索引的程序,强制kill很有可能导致索引坏掉,每次关闭前必须保证所有的IndexWriter已经正常的关闭。

4.读先都很频繁的情况下, IndexReader.reopen产生新的IndexReader实例 ,需要关闭旧的实例。关闭的IndexReader才能让它释放文件。否则会导致打开文件过多的异常

5.如果要做读写分离。同步索引数据要按如下步骤进行:a.停止所有建索引的程序。b.IndexWriter.commit() c.优化所有索引 d。最后再coping or rsyncing。

6.排序字段和范围字段的格式处理,排序字段需要补零等操作。范围字段尽量使集合最小化。比如:要按时间来范围搜索,如果只需要精确到天。那就把字段格式成(yyyyMMdd) 形式,只需要精确到月,格式成(yyyyMM)。如果某个字段即要排序就要范围搜索,应该考虑把索引成两个字段。

7.每个Document最好都分配一个唯一key,这个key可以是数据库里每个唯一键,也可以是多个字段的组合。用于更新和删除索引

8.把需要更新很频繁的索引和更新不频繁的索引分离成两个目录(要有良好、严密的方案)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值