Lucene.Net 优化索引生成,即搜索显示优化

最近发现站内搜索引擎响应速度很慢,因为刚来公司之前技术员跑了源码什么的都没留下。只好自己手动破解源代码dll查找问题所在!

这个问题代码就暂时不贴了这里只写思路

原逻辑:经过整体分析后发现之前是使用 Lucene.Net 生成索引文本文档 ,搜索调用生成后的数据显示 。

问题所在:由于数据量庞大又是全站数据生成,导致生成文本数据过大,生成速度慢,用的Lucene.Net还是老版本生成过程和前端调用文件产生冲突导致生成报错,还有就是访问量大导致Io顶不住

分析发现由于对每个分类进行全字段进行保存索引导致生成过慢

前端搜索分页也是读取所有命中的数据也是问题所在

解决方案:

经过和网友交流经验最终解决这两个问题

1.生成索引:只储存有用的字段,比如我要搜索标题和关键词字段 ,那就只插入这两个字段数据和id

这样的话大大减少生成文件的大小能提高命中响应速度

2.前端搜索显示: 分页显示不要一次加载所有数据,比如显示第一页就只读第一页的数据,id对应二次加载对应显示的相关数据在使用缓存redis

最后以上是本人目前感觉最好的优化方案,如有更好的方案请留言交流

1:如果只是搜索标题和关键词,直接搜数据库就可以了(一般标题和关键词建个索引就可以了)
用数据库的全文索引,是因为要对内容进行索引。
为了转移数据库的压力,把全文索引转移到了Luncene。

2:没啥好说的。

原文地址:https://www.cnblogs.com/chenmfly/p/5810181.html