lucene中的filter其实并不起眼,大家对其对性能的影响也不是很关注,但实际上filter是除了单纯搜索以外,其他搜索附加功能的必选组件,其性能很大程度上会直接影响搜索的性能,之前我一直认为filter的性能比query高,但事实说明并不完全如此(这里所说的负荷是指io消耗并不是cpu),实际上在lucene中充满着各种io流,也就是说很多东西都无法从根本上保存,这也给缓存带来了很大难度(这个问题看似简单,但是在超复杂的组合查询下,缓存可能会几乎无用,原因就是key怎么把握)首先来看看filter的接口定义:public abstract class Filter implements ...
你的搜索可以集群吗(这里单指前端应用集群)?这是一个突然发来的问题。。。其实lucene说实话什么都好就是集群不方便。。。查看了些资料基本上做集群都是利用系统的集群文件系统等实现的,这个效率不会好。突然我觉得可以这样的结构来做集群:一台单机做索引,索引文件存在这台物理机上然后利用nfs将索引文件映射到多台前端子机,子机将nfs的内容用RAMDirectory读到内存索引中,然后子机各自使用web服务提供前台访问前端再使用集群服务器实现前台的集群当索引更新的时候可使用jms通知子机及时同步nfs和RAMDirectory的内容不过这样对服务器有些限制,比如: 索引量不能很大,无限大需要无限大的内 ...
网上有很多高亮的类,但我觉得太负责了(也许他们觉得这样性能更高),我写了一个很简单采用je分词+正则解决高亮问题,实际使用下来还是不错的:
java 代码
import java.util.Iterator;
import java.util.List;
/**
* @author edwardpro
*
...
网上有很多高亮的类,但我觉得太负责了(也许他们觉得这样性能更高),我写了一个很简单采用je分词+正则解决高亮问题,实际使用下来还是不错的:java 代码import java.util.Iterator; import java.util.List; /** * @author edwardpro * */ public class Highli ...
几天调一个js遇到灵异问题:var s=$('sform');s.action="bb.html";<form action="a.html" id='sform'><input type="hidden" name="action" />...</form>js目标很简单,改变form上的action的值,结果却。。。alert出来 s.action 居然是一个对象,反复想,终于发现问题就出在from里的action组件,formObj.action居然被form里的同名组件覆 ...
其实这个环境配置很容易的应该 apt-get就可以得到了,但事实不是的,特别是在安装一切顺利的时候,但当安装到mongrel时出了点问题,系统总是提示没有mkmf.rb 然后抱了一大堆错误,实际上问题是没有apt-get ruby1.8-dev,这个东西折腾了很久。。。所以这边总结下安装的方法吧准备:sudo apt-get install build-essential sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install libssl0.9.8sudo apt-get install libssl0.9 ...
一般来说网站的编码是统一的不会出现问题的,不过有时候会有这样的编码需求出现,在ruby中需要怎么做呢?现在有这样一个例子:一个页面需要gbk 一个页面需要utf-8非常幸运在ruby中的默认就是utf-8即使你在html中怎么写编码比如:<meta http-equiv="content-type" content="text/html;charset=GBK" />其实没有太大作用,关键时刻需要使用:headers["Content-Type"] = "text/html; charset=GBK" ...
ruby里边有两套File函数本地的 File::open() 属于标准库远程的 open_uri 包中的 open函数 Tags - ruby , file , 文件读取
非常讨厌看类文档,那些东西空洞无物,但是有时候是没有办法的,比如rubyzip,因为需要在项目中使用zip包,只能看类文档了。第一次使用这东西其实出了不少问题,下面先贴一段有问题的测试代码:require 'zip/zipfilesystem'Zip::ZipFile.open("E:\\moive\\c.zip") { #打开|zf|zf.dir.entries("").each do |ak| #get files list on root path in zip File fi ...
花了整下午调试了下worker模式,一直想用,不过听说还不是太稳定,所以没有尝试,今天正好要重新编译服务器所以偷偷把MPM改成了worker模式,尝试下线程的魅力,下面说说自己调优的过程和效果服务器配置: 皓龙 1.8GHz×2 1G DDR 333 250G SATAII的硬盘软件环境Apache2.0.59+Mysql 5.0.18+PHP 5.2.1 + Rails 1.2.3谈谈体会,原来的perfolk模式平时一直开10个进程的,效率也不太高。现在调试成2~4个进程,主要目的看看是每个进程线程多性能好,还是进程多些线程少比较好,测试了2×200 和4&time ...
写了一个从html中提取图片的helper方法,不过不知道怎么让正则一个个匹配下去,似乎String.scan不能达到我的要求,所以还是用了递归方法,代码如下: def get_only_pic(cbody,result="") results=/<img (.*) src=\"(.*)\" (.*)\/>/i.match(cbody) if results == nil &n ...
因为要实现树展现,当然用非递归也可以的,不过考虑灵活性和维护简便还是用递归实现,以下的例子是在helper中使用的,不过rails的输出始终让我有点找不到北,毕竟在webwork中如果实在要输出依然可以通过response得到输入流的,但rails似乎没有,于是只能用如下如此愚蠢的方法实现了: protected @@body="" def build_tree(father_id=0,level=1) @trees=Site.find(:all,:conditi ...
下午 update了下rails 升级到了1.2.3 但莫名其妙的突然rails链接不上数据库了,报了一个类型无法转换,百思不得其解过了两小时用gem update,发现gems自己又更新了,这次奇迹出现了,居然正常了。2小时历险记啊。
http://orangoo.com/labs/GreyBox/他的特点是比较容易实现 rel加入一个gl_imageset[]就行了,缺点也是太方便了不太灵活(看来万物都是两面的)修改源代码后终于灵活了:) 不过效果超级好大家try下吧。
升级到1.5后发现 Ajax.Updater()不好用,在IEok,在Firefox不行,改用了Ajax.Request后就好了。
我在服务器上配置的rewrite始终不成功,那个郁闷啊,后来才发现原来是一个属性的问题导致引擎未能启动。请大家注意httpd.conf中有一个属性:AllowOverride 这个属性AllowOverride 指令说明确定允许存在于.htaccess文件中的指令类型语法AllowOverride All|None|directive-type [directive-type] ...默认值AllowOverride All作用域directory状态核心(C)模块core一定要调成All否则配置将不会起效,所以我奇怪为什么原来配置的.htaccess和没有一样,原来如此。
上次说过出去的乱码用apache解决,这样很方便因为apache规定了所有的header都是gbk的了,但这样有个严重的问题,比如你在这个apache下挂载了另外一个utf-8的业务怎么办?这是一个非常痛苦的问题,要解决的方法,我个人觉得还是利用服务器端解决比较好。比如在php里用header();解决头的问题,唯一的改动可能就是你把原来的文件名改成.php的就行了,这个占不了多少消耗的,而且这样比较灵活。当然最后老话重提:强烈建议用utf-8编码!!!重提100次,因为编码会非常折腾人的,这些都是用时间和血泪换来的。
昨天在家使用innerHTML时出现点小问题,调试了1个小时才明白:
代码:
js 代码
$('message').innerHTML+="<div id='abc'>";
$('message').innerHTML+="<div id='abc_child'>";
$('message').innerHTML+="<p>test</p>"; & ...
问题描述,采用gbk页面传输中文到后台,后台显示乱码。经过查看原来是prototype把前台的gbk自作聪明变成了utf8(这是合理的方法哈),造成后台无法取得正确的编码。经过考虑还是用后台来解决乱码问题,网上找了几个urlencode的函数都不行,所以还是用php本身解决这个问题比较省心。如下的函数:iconv("UTF-8", "GBK//IGNORE",substr(Char_cv($pwuser),0,50));注意输出编码的解释IGNORE这个非常重要,后来在网上查到了一个帖子和我一样的问题,现在终于解决了全部的问题。总结下prototype的 ...
终于解决了一个css的bug,发现原来css摆放是有顺序的,有覆盖行为,比如:a:link { font-size: 9pt; COLOR: #333333; TEXT-DECORATION: none;}a:visited { font-size: 9pt; COLOR: #333333; TEXT-DECORATION: none;}a:hover { font-size: 9pt; COLOR: #FF5400; TEXT-DECORATION:underline;}如果把上述代码替换成:a:link { font-size: 9pt; COLOR ...
深夜了,还在写tab切换的核心类,很想把timer集成进去,却不行。/*** @author edwardpro@hellodigi.com* @copyright hellodigi.com 2007~2008* @projectDescription provide with you a tabs changes function*/var tabCore=function(tabs,tabsItem){this._tabs=$(tabs);this._timeout=0;//默认是0this._curitem=0;// current item means who is the curr ...
今天本来是一个好机会问Gavin不过自己的英语不行,估计一些复杂的表述很难描述清楚,不过我想还是在blog里聊聊吧。1 关于轻量级的开发什么叫轻量级?几个类几个表不需要太多扩展性能,这种平台显然不合适Hibernate,因为为了简单的dao操作需要付出很大的配置代价,而gavin对于ROR的简便是很suck的,因此Hibernate依然是一个中型以上使用的系统。这是Hibernate我认为的弱项。2 多表问题大家都知道在Hibernate里的实体其实就是表的java表现,而这种模式在多表查询中变得不再灵活,这个问题在robbin的讲座中也得到验证,而我个人更倾向于使用一种更特性的单独bean加 ...
老实说对于Seam如果不是今天听到还真不了解,因为我们身边不缺庞大的开发框架尤其是MVC框架,webwork tapestray structs等等,太多了。今天听了曹老师的介绍,对于seam有了一点了解,下面谈谈自己的想法:1 IOC的畅想,在spring中大家都知道,它的IOC是inject,但在Seam中这种观念得到了突破,它提出了一种叫做Backject的概念字面理解就是注回这是一个突破的概念。用过Spring的同学都应该知道在某些时候非要使用GetBean从上下文中得到Bean的,而有了回注的功能,就可以达到配置对bean的反向注入这样就再也不用使用getBean这种依赖spring ...
Hibernate的性能问题一直是大家关注的,很多人都觉得Hibernate性能不行,其实我觉得没有,Hibernate性能其实非常不错,觉得不行主要就是没有用好,下面总结下Robbin说的内容:1 多表查询: cache 正确的反转控制,这两条是解决多表的性能问题的关键2 分页技术: 使用3.0的createFilter方法得到分页,Hibernate拥有非常好的分页实现3 分表: 采用更多的1to1把数据表拆小,然后记得配置隐式多态,这样就不会把整个数据集都读出来了Robbin本人大概说了10条我把它们整合成了这样3条,希望对大家有用
- 浏览: 43925 次
- 性别:


- 详细资料
搜索本博客
最新评论
-
webflow 还是不错的
你好,我也正在顶着压力摸索WEBFLOW~.~ 你能忙我解释下几个问题吗? 希 ...
-- by caixicai -
从阿里巴巴的职位看到
现在很看好 web应用安全工程师 无奈,能力,是个问题,加紧学习,是目前的 ...
-- by guojingxf -
lucene的前端集群思路
最近做收索看了看lucene的源码,觉得很不好啊,首先说来不支持中文字典的分词, ...
-- by yuling1217 -
lucene的前端集群思路
将索引分类,然后分放到不同的机器上,是不是也可以达到同样的效果。
-- by johnnyhg -
lucene的前端集群思路
你的方案还是有道理的,不过nfs的速度和可靠性也要评估。索引太大了,使用RAMD ...
-- by grantbb






评论排行榜