Lucid Imagination发布了Apache Lucene性能监测工具 - 中文JAVA技术网 java java技术 java软件下载 java面试 java虚拟机 java基础 Lucid Imagination是一家采用Apache Lucene和Solr搜索引擎类库从事相关开发的商业公司,其引入了一个新的名叫LucidGaze的监测工具。该产品给开发者提供了一个针对Lucene的完整版本的性能监测工具。性能数据可以打印在日志文件中、存储在轮询数据库中、或者通过Java API来使用。如果使用了轮询数据库,则可以采用RRD4j类库提供的一个标准Swing应用程序来读取或处理该数据库。 该软件是以.jar文件提供的,用来替代Lucene的.jar文件,因此安装非常简单。开发者只需在其应用的classpath中将lucene-core.2.4.1.jar替换成lucene-core-gaze.2.4.1.jar即可。 LucidGaze给开发者提供了一系列分析方法,以观察搜索转换为文档检索操作的状况,索引分析分解用户输入处理的效果,以及文本处理和索引构建的过程。 * 分析统计数据:Analyzer、TokenFilter、TokenStream和Tokenizer的相关数据,以及哪一个Analyzer被用来为特定域产生TokenStream。 运行所有监视器的开销相当大。 InfoQ还与Ingersoll谈到了LucidGaze的一些典型应用。 尽管没有开源,但该产品是免费提供的,可以从Lucid Imagination的Web站点上下载。
Downloads - zoie - real-time search and indexing system built on Apache Lucene My favorites ▼ | Sign in Project Home Downloads Wiki Issues Source 1 - 7 of 7 Terms - Privacy - Project Hosting Help Powered by Google Project Hosting solr SolrIndexSearcher性能问题分析 Posted in solr on 十月 21st, 2010 by kafka0102 问题背景 基于solr的新搜索系统已经使用了有段时间,不过之前上的几个库都很小,也没发现什么性能问题。 因为SolrIndexSearcher是基于lucene的IndexSearcher,想必应该是青出于蓝胜于蓝,并且其wiki上给出的性能数据也很不错,所以当我把新系统做完后并没有去细致的测试其性能。 原因分析 分析thread应用给搜索server发来的query,query除了包含用户输入的文本,还有两个filter query:1)是fq=fid:1,fid是int型,表示选择某个版块;2)是fq=atm:[int_time1 TO int_time2],atm是int型,表示帖子发表的时间,默认int_time2是请求时的时间,int_time1是比int_time2小6个月的起始时间。 翻看SolrIndexSearcher的代码,它除了继承IndexSearcher的一系列search方法,还增加了search(QueryResult qr, QueryCommand cmd),也是我使用的接口。 1)将一或多个fq构成List<Query>,然后调用getDocSet(final List<Query> queries)得到DocSet,DocSet存放的是匹配的doc id列表,getDocSet方法内部就是遍历queries,对每一个query执行getPositiveDocSet(final Query q)得到该query的DocSet,然后将得到的多个DocSet做合并,得到满足所有fq的DocSet。 2)由DocSet的Filter getTopFilter()方法得到Filter,再联合TopFieldCollector或者TopScoreDocCollector,以及由text query构造的Qeury,调用lucene的void search(Query query, Filter filter, Collector results),再结合一些扫尾工作,完成一次查询过程。 单看这个过程,也很难发现问题在哪。 updated:该文分析问题的角度上出现了偏差,solr filter query的误用做了一些补充和修正。 相关日志 8 Responses 留下评论
How can I reuse a HttpClient connection efficiently?- WeAsk + New .COMs $7.99/yr plus 18 cents/yr ICANN fee. Discount based on new one-year registration prices as of 1/27/2012 with sale price reflected in your shopping cart at checkout. Discount applies to new registrations and renewals and cannot be used in conjunction with any other offer or promotion. Domains purchased through this offer will renew at regular price after the initial term has expired. Offer ends May 31, 2012 5:00 pm (MST). † Good for one 1-year registration of any available .COM, .US, .BIZ, .INFO, .NET or .ORG ‡ Annual discounts available on NEW purchases only. GoDaddy.com is the world's No. 1 ICANN-accredited domain name registrar for .COM, .NET, .ORG, .INFO, .BIZ and .US domain extensions. 1 GoDaddy.com is rated the world's largest hostname provider according to Netcraft®.
httpclient的并发连接问题 Posted in java on 十一月 20th, 2010 by kafka0102 昨天的搜索系统又出状况了,几个库同时重建索引变得死慢。经过一个上午的复现分析,确定问题出现httpclient的使用上(我使用的是3.1这个被广泛使用的遗留版本)。 public void setDefaultMaxConnectionsPerHost(int maxHostConnections); public void setMaxTotalConnections(int maxTotalConnections); httpclient在处理请求连接方面使用了连接池,它内部实际上有两种连接池,一种是全局的ConnectionPool,一种是每主机(per-host)HostConnectionPool。 /** The default maximum number of connections allowed per host */ public static final int DEFAULT_MAX_HOST_CONNECTIONS = 2; // Per RFC 2616 sec 8.1.4 /** The default maximum number of connections allowed overall */ public static final int DEFAULT_MAX_TOTAL_CONNECTIONS = 20; 默认的maxHostConnections大小只有2,也就是说,在我并发8个线程请求数据时,实际上会有6个线程处于等待被调度,这也就解释上面的现象了。 _httpClient = (client == null) ? 对于httpclient,特别指出的是它的MultiThreadedHttpConnectionManager,看名字好像是多线程并发请求似的,其实不是,但它也确实用到了多线程,那是在发现连接不够用时起个等待线程wait信号,这个名称的含义应该是多线程情况线程安全的HttpConnectionManager。 补充:写完之后倒在床上,我又想起了几个问题,这里补充上: 1、系统原先重建索引隐约记得速度还是可以的,为什么现在变慢得如此明显? ==================== 华丽的终止符 ===================
mongodb Posted in nosql on 二月 17th, 2011 by kafka0102 赋闲以后很长没有更新博客了,说忙完全是借口,多半因为没有兴致所致。今天凌晨比赛多多,趁着比赛的前奏和间隙,遂浏览些技术文章。发现了 highscalability.com整理出了wordnik使用mongodb和scala的使用经 验: requests-a-day-on-mongodb-and-scala.html。 说起mongodb,从初识到现在已经有些时间,却也没有大场面使用和深入研究。 mongodb is so fast!!! wordnik在更新数据时使用了一个trick,它不是直接更新,而是先把要更新的数据读出来(到了内存),然后再更新。 mongodb的文档模型很给力,编程接口很简洁。 ==================== 华丽的终止符 =================== 相关日志 2 Responses 留下评论
searchblox–一个基于lucene的搜索产品 Posted in search on 十二月 8th, 2010 by kafka0102 前两天在solr邮件组看到一封广告帖,一个叫searchblox的搜索产品可免费使用,好奇心驱使我简单了解并使用了一下。searchblox是基于lucene的搜索解决方案,现在的版本已经是6.1,看来也有些年头了。searchblox不是个开源产品,有免费的版本,也有收费的版本,看文档介绍,收费版本除了提供服务支持还多了复制功能。 功能上看,searchblox集成了爬虫和搜索功能,也提供Http API接口供索引和查询,可以在 下面看下它的架构图,可以更好的睽睽它提供的功能: 在可扩展性方面,它提供了复制的支持,但没有提供shard支持: 写到这里,其实我都不想对searchblox再评头论足了,它看起来实在不是很吸引人。 searchblox,再见!!! ==================== 华丽的终止符 =================== 留下评论 kafka0102的边城客栈