Lucene.Net 优化索引生成,即搜索显示优化
最近发现站内搜索引擎响应速度很慢,因为刚来公司之前技术员跑了源码什么的都没留下。只好自己手动破解源代码dll查找问题所在!
这个问题代码就暂时不贴了这里只写思路
原逻辑:经过整体分析后发现之前是使用 Lucene.Net 生成索引文本文档 ,搜索调用生成后的数据显示 。
问题所在:由于数据量庞大又是全站数据生成,导致生成文本数据过大,生成速度慢,用的Lucene.Net还是老版本生成过程和前端调用文件产生冲突导致生成报错,还有就是访问量大导致Io顶不住
分析发现由于对每个分类进行全字段进行保存索引导致生成过慢
前端搜索分页也是读取所有命中的数据也是问题所在
解决方案:
经过和网友交流经验最终解决这两个问题
1.生成索引:只储存有用的字段,比如我要搜索标题和关键词字段 ,那就只插入这两个字段数据和id
这样的话大大减少生成文件的大小能提高命中响应速度
2.前端搜索显示: 分页显示不要一次加载所有数据,比如显示第一页就只读第一页的数据,id对应二次加载对应显示的相关数据在使用缓存redis
最后以上是本人目前感觉最好的优化方案,如有更好的方案请留言交流
1:如果只是搜索标题和关键词,直接搜数据库就可以了(一般标题和关键词建个索引就可以了)
用数据库的全文索引,是因为要对内容进行索引。
为了转移数据库的压力,把全文索引转移到了Luncene。
2:没啥好说的。
Lucene.Net 优化索引生成,即搜索显示优化的更多相关文章
- Lucene的数值索引以及范围查询
对文本搜索引擎的倒排索引(数据结构和算法).评分系统.分词系统都清楚掌握之后,本人对数值索引和搜索一直有很大的兴趣,最近对Lucene对数值索引和范围搜索做了些学习,并将主要内容整理如下: 1. Lu ...
- 搜索引擎系列 ---lucene简介 创建索引和搜索初步
一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎 :Lucene得名于Doug妻子 ...
- lucene简介 创建索引和搜索初步
lucene简介 创建索引和搜索初步 一.什么是Lucene? Lucene最初是由Doug Cutting开发的,2000年3月,发布第一个版本,是一个全文检索引擎的架构,提供了完整的查询引擎和索引 ...
- Lucene 的四大索引查询 ——bool 域搜索 通配符 范围搜索
Lucene 的四大索引查询 清单1:使用布尔操作符 Java代码 //Test boolean operator blic void testOperator(String indexD ...
- 关于lucene的IndexSearcher单实例,对于索引的实时搜索
Lucene版本:3.0 一般情况下,lucene的IndexSearcher都要写成单实例,因为每次创建IndexSearcher对象的时候,它都需要把索引文件加载进来,如果访问量比较大,而索引也比 ...
- Lucene底层原理和优化经验分享(1)-Lucene简介和索引原理
Lucene底层原理和优化经验分享(1)-Lucene简介和索引原理 2017年01月04日 08:52:12 阅读数:18366 基于Lucene检索引擎我们开发了自己的全文检索系统,承担起后台PB ...
- mysql性能优化-慢查询分析、优化索引和配置
一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 profiling分析查询 2索引及查询优化 三.配置优化 1) max_connec ...
- [转]mysql性能优化-慢查询分析、优化索引和配置
一. 优化概述 MySQL数据库是常见的两个瓶颈是CPU和I/O的瓶颈,CPU在饱和的时候一般发生在数据装入内存或从磁盘上读取数据时候.磁盘I/O瓶颈发生在装入数据远大于内存容量的时候,如果应用分布在 ...
- mysql性能优化-慢查询分析、优化索引和配置 (慢查询日志,explain,profile)
mysql性能优化-慢查询分析.优化索引和配置 (慢查询日志,explain,profile) 一.优化概述 二.查询与索引优化分析 1性能瓶颈定位 Show命令 慢查询日志 explain分析查询 ...
随机推荐
- VS的编译选项
转载下,对于VS的编译选项介绍蛮清楚的!! 1. 静态链接库.动态链接库.CRT.STL 我们要到一个函数,要么是需要该函数的源代码,要么是知道该函数的声明并有该函数的实现,这里的“实现”又分为静态链 ...
- Django报:AttributeError: tuple object has no attribute get
def index(request): hero_list=models.HeroInfo.objects.all() return render_to_response('index.html',{ ...
- Python3.6全栈开发实例[003]
3.检查传入列表的长度,如果大于2,将列表的前两项内容返回给调用者. li = [11,22,33,44,55,66,77,88,99,000,111,222] def func3(lst): if ...
- JavaScript+css+ div HTML遮罩層效果
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>Test</title ...
- Log level with log4j and Spark
Log Level Usages OFF This is the most specific, which allows no logging at all FATAL This is the mos ...
- python之网络socket编程
一.网络协议 客户端/服务器架构 1.硬件C/S架构(打印机) 2.软件C/S架构(互联网中处处是C/S架构):B/S架构也是C/S架构的一种,B/S是浏览器/服务器 C/S架构与socket的关系: ...
- Django_随机验证码
随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: pip3 install pillow 基本使用 1. 创建图片 from PIL import Image img = Imag ...
- jq中ajax的dataType:"json"是指什么?
dataType String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就 ...
- Cocos2d-x项目移植到WP8系列之七:中文显示乱码
原文链接:http://www.cnblogs.com/zouzf/p/3984628.html C++和C#互调时经常会带一些参数过去例如最常见的字符串,如果字符串里有中文的话,会发现传递过去后变成 ...
- MySQL数据库基本操作(一)
进入mysql 本地连接: mysql -u用户名 -p 输入密码 qwe123 mysql -uroot -pqwe123 sudo apt-get install mysql-server # p ...