I have recently done some tests on lucene. I do not know whether the test
results normal. hd entironment:Intel(R) Xeon(R) CPU 5110 @ 1.60GHz4GB ram sw
entironment:centOS4.6+sun jdk 1.5+jboss+lucene2.3.2+je-analysis(a chinese
analysis)there are 10 million+ documents which total about 3GB test steps: 1
run single searcher.jsp in jboss(tuning ,and use 1GB ram)2 use loadrunner to
test simulation 10 user concurrent request. the TPS(transactions per
second) about 10 simulation 50 user concurrent request. the
TPS(transactions per second) about 8 simulation 100 user concurrent
request. the TPS(transactions per second) about 2 and the jsp was very
simple,index in local file
system-------------------------------------------------------------------------------------------------
<body> <center> <form action="lucene.jsp" method="post" name="form1" >
<input type="text" value="" name="keyword2"/> <input type="submit"
value="searcher" onclick="SUB()"/>
<input type="reset" value="exit"/> </form> </center> <hr> <%
if(request.getParameter("keyword2")!=null &&
!"".equals(request.getParameter("keyword2"))) { String
dir="/usr/local/index"; String key="name"; String word = new
String(request.getParameter("keyword2"),"utf-8") ; Searcher searcher = null;
searcher = new IndexSearcher(FSDirectory.getDirectory(dir, false)); Analyzer
myAnalyzer=new jeasy.analysis.MMAnalyzer(); QueryParser queryParser=new
QueryParser(key,myAnalyzer); Query query=queryParser.parse(word);
Hits hits = null; long startTime = System.nanoTime(); hits=
searcher.search(query); long estimatedTime = System.nanoTime() -
startTime; BigDecimal bb = new BigDecimal(estimatedTime);
BigDecimal ee = new BigDecimal(1000000000); System.out.println("Key
word: "+word+" Hits:" + hits.length()+" Cost time: "+ bb.divide(ee) + "/s");
searcher.close(); } out.print("ABC") ; %> </body> ---------------
----------------------search.jsp---------------------------------------------------------
and I also try to use Singleton IndexSearcher ,but it's seam not
helpful.--------------------------------------------------------------------------------
public IndexSearcher getIndexSearcher() throws IOException { if
(this.indexSearcher == null) { return new
IndexSearcher(FSDirectory.getDirectory(folder, false)); } else { IndexReader
ir = indexSearcher.getIndexReader(); if (!ir.isCurrent()) {
this.indexSearcher.close(); this.indexSearcher = new
IndexSearcher(FSDirectory.getDirectory(folder, false)); ir =
indexSearcher.getIndexReader(); if (ir.hasDeletions()) { if
(this.indexWriter != null) { this.indexWriter.optimize(); } } }
return this.indexSearcher; }
}------------------------------------GetsingletonIndexsearcher.java
--------------------------------------------- use the same code in application
search one times per 0.5s average.so how do I i
mprove the seaching performance in concurrent entironment ? Does the hd
entironment: Intel(R) Xeon(R) CPU 5110 @ 1.60GHz4GB ramgive me 50+TPS?
_________________________________________________________________
用手机MSN聊天写邮件看空间,无限沟通,分享精彩!
http://mobile.msn.com.cn/