Lucene优化

解决大量磁盘IO

  • config.setMaxBufferedDocs(100000); 控制写入一个新的segment前内存中保存的document的
    数目,设置较大的数目可以加快建索引速度。
    数值越大索引速度越快, 但是会消耗更多的内存
  • indexWriter.forceMerge(文档数量); 设置N个文档合并为一个段
    数值越大索引速度越快, 搜索速度越慢; 值越小索引速度越慢, 搜索速度越快
    更高的值意味着索引期间更低的段合并开销,但同时也意味着更慢的搜索速度,因为此时的索引通
    常会包含更多的段。如果该值设置的过高,能获得更高的索引性能。但若在最后进行索引优化,那
    么较低的值会带来更快的搜索速度,因为在索引操作期间程序会利用并发机制完成段合并操作。故
    建议对程序分别进行高低多种值的测试,利用计算机的实际性能来告诉你最优值。

选择合适的分词器

不同的分词器分词效果不同, 所用时间也不同
虽然StandardAnalyzer切分词速度快过IKAnalyzer, 但是由于StandardAnalyzer对中文支持不好, 所
以为了追求好的分词效果, 为了追求查询时的准确率, 也只能用IKAnalyzer分词器, IKAnalyzer支持停
用词典和扩展词典, 可以通过调整两个词典中的内容, 来提升查询匹配的精度

选择合适的位置存放索引库

在这里插入图片描述

Directory directory = MMapDirectory.open(Paths.get("xxx"));

搜索api的选择

  1. 尽量使用TermQuery代替QueryParser
  2. 尽量避免大范围的日期查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值