i wont close the IndexReader after the First Search.when i instantiate IndexSearcher object will it display the updated records in that directories
Sebastin wrote: > > I set IndexSearcher as the application Object after the first search. > > here is my code: > > if(searcherOne.isOpen()==(true)){ > > Directory compressDir2 = > > FSDirectory.getDirectory(compressionSourceDir02,false); > IndexReader compressedSource2 = > IndexReader.open(compressDir2); > Directory compressDir3 = > > FSDirectory.getDirectory(compressionSourceDir03,false); > IndexReader compressedSource3 = > IndexReader.open(compressDir3); > Directory compressDir4 = > > FSDirectory.getDirectory(compressionSourceDir04,false); > IndexReader compressedSource4 = > IndexReader.open(compressDir4); > > > > IndexReader[] readArray = > {compressedSource2,compressedSource3,compressedSource4}; > //merged reader > IndexReader mergedReader = new MultiReader(readArray); > IndexSearcher is = new IndexSearcher(mergedReader); > > BooleanQuery.setMaxClauseCount(1000000000); > searcherOne.setIndexSearch(is); > searcherOne.setOpen(false); > BigInteger _l = new BigInteger(mobile1, > 10); > _mobile = _l.toString(36); > QueryParser parser = > new > QueryParser(AppConstants.CONTENTS, new StandardAnalyzer()); > > > searchQuery= > new > StringBuffer().append(_mobile).append(" AND dateSc:[" > ).append(fromDate).append(" TO ").append(toDate).append("]").append(" > ").append("AND").append(" ").append(callTyp).toString(); > > > > > Query callDetailquery = > parser.parse(searchQuery); > > hits = is.search(callDetailquery); > System.out.println("FirstSearch"); > > > } > // System.out.println("No Of MAXIMUM dOCUMENTS : " +is.maxDoc()); > else{ > > is=searcherOne.getIndexSearch(); > > BigInteger _l = new BigInteger(mobile1, 10); > _mobile = _l.toString(36); > > BooleanQuery.setMaxClauseCount(1000000000); > QueryParser parser = > new QueryParser(AppConstants.CONTENTS, new > StandardAnalyzer()); > > searchQuery=new StringBuffer().append(_mobile).append(" > ").append(" AND dateSc:[" ).append(fromDate).append(" TO > ").append(toDate).append("]").append(" ").append("AND").append(" > ").append(callTyp).toString(); > > > > > > > callDetailquery = parser.parse(searchQuery); > > hits = is.search(callDetailquery); > > > how can i reconstruct the new IndexSearcher for every hour to see the > updated records . > > > > hossman wrote: >> >> >> : I use StandardAnalyzer.the records daily ranges from 5 crore to 6 >> crore. for >> : every second i am updating my Index. i instantiate IndexSearcher object >> one >> : time for all the searches. for an hour can i see the updated records in >> the >> : indexstore by reinstantiating IndexSearcher object.but the problem when >> i >> : reinstantiate IndexSearcher ,my RAM memory gets appended.is there any >> >> skimming hte code below, you are opening an IndexSearcher over a >> MultiReader over 4 seperate IndexReaders ... when you instantiate a new >> IndexSearcher are you explicitly closing both the old IndexSearcher as >> well as all of 4 of those old IndexReaders and the MultiReader? >> >> closing an IndexSearcher will only close the underlying Reader if it >> opened it .. and a MultiReader constructed from other IndexReaders will >> never close them. >> >> -Hoss >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> >> > > -- View this message in context: http://www.nabble.com/Java-Heap-Space--Out-Of-Memory-Error-tf4376803.html#a12516112 Sent from the Lucene - Java Users mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]