Lucene.Net 优化索引生成,即搜索显示优化
2016-08-26 14:18
495 查看
最近发现站内搜索引擎响应速度很慢,因为刚来公司之前技术员跑了源码什么的都没留下。只好自己手动破解源代码dll查找问题所在!
这个问题代码就暂时不贴了这里只写思路
原逻辑:经过整体分析后发现之前是使用 Lucene.Net 生成索引文本文档 ,搜索调用生成后的数据显示 。
问题所在:由于数据量庞大又是全站数据生成,导致生成文本数据过大,生成速度慢,用的Lucene.Net还是老版本生成过程和前端调用文件产生冲突导致生成报错,还有就是访问量大导致Io顶不住
分析发现由于对每个分类进行全字段进行保存索引导致生成过慢
前端搜索分页也是读取所有命中的数据也是问题所在
解决方案:
经过和网友交流经验最终解决这两个问题
1.生成索引:只储存有用的字段,比如我要搜索标题和关键词字段 ,那就只插入这两个字段数据和id
这样的话大大减少生成文件的大小能提高命中响应速度
2.前端搜索显示: 分页显示不要一次加载所有数据,比如显示第一页就只读第一页的数据,id对应二次加载对应显示的相关数据在使用缓存redis
最后以上是本人目前感觉最好的优化方案,如有更好的方案请留言交流
1:如果只是搜索标题和关键词,直接搜数据库就可以了(一般标题和关键词建个索引就可以了)
用数据库的全文索引,是因为要对内容进行索引。
为了转移数据库的压力,把全文索引转移到了Luncene。
2:没啥好说的。
这个问题代码就暂时不贴了这里只写思路
原逻辑:经过整体分析后发现之前是使用 Lucene.Net 生成索引文本文档 ,搜索调用生成后的数据显示 。
问题所在:由于数据量庞大又是全站数据生成,导致生成文本数据过大,生成速度慢,用的Lucene.Net还是老版本生成过程和前端调用文件产生冲突导致生成报错,还有就是访问量大导致Io顶不住
分析发现由于对每个分类进行全字段进行保存索引导致生成过慢
前端搜索分页也是读取所有命中的数据也是问题所在
解决方案:
经过和网友交流经验最终解决这两个问题
1.生成索引:只储存有用的字段,比如我要搜索标题和关键词字段 ,那就只插入这两个字段数据和id
这样的话大大减少生成文件的大小能提高命中响应速度
2.前端搜索显示: 分页显示不要一次加载所有数据,比如显示第一页就只读第一页的数据,id对应二次加载对应显示的相关数据在使用缓存redis
最后以上是本人目前感觉最好的优化方案,如有更好的方案请留言交流
1:如果只是搜索标题和关键词,直接搜数据库就可以了(一般标题和关键词建个索引就可以了)
用数据库的全文索引,是因为要对内容进行索引。
为了转移数据库的压力,把全文索引转移到了Luncene。
2:没啥好说的。
相关文章推荐
- 用Lucene.net对数据库建立索引及搜索
- lucene.net搜索--------索引详解
- 利用Lucene.net搭建站内搜索(3)---创建索引
- Lucene 生成索引以及搜索的完整例子
- orchard之lucene.net索引生成
- 用Lucene.net对数据库建立索引及搜索<转>
- 用Lucene.net对数据库建立索引及搜索
- lucene.net学习三——与索引优化相关的几个参数
- 转 lucene3搜索引擎,索引建立搜索排序分页高亮显示, IKAnalyzer分词
- lucene.net 高级应用之排序、设置权重、优化、分布式搜索
- 利用Lucene.net搭建站内搜索(3)---创建索引
- lucene.net 2.9.2 实现索引生成,修改,查询,删除功能
- lucene.net 2.9.2 实现索引生成,修改,查询,删除功能
- 基于Lucene.Net包装的傻瓜索引搜索系统
- .net lucene 实战搜索(二)----- 基本之索引
- Lucene.net搜索——创建索引
- Lucene.NET建立,搜索多个索引文件
- Lucene.net多索引搜索,条件过滤操作
- orchard之lucene.net索引生成
- lucene.net 高级应用之排序、设置权重、优化、分布式搜索