You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-commits@lucene.apache.org by ry...@apache.org on 2007/07/10 13:57:37 UTC
svn commit: r554915 -
/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
Author: ryan
Date: Tue Jul 10 04:57:36 2007
New Revision: 554915
URL: http://svn.apache.org/viewvc?view=rev&rev=554915
Log:
SOLR-296 -- wrapping reader.terms() in try/catch
Modified:
lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
Modified: lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java
URL: http://svn.apache.org/viewvc/lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java?view=diff&rev=554915&r1=554914&r2=554915
==============================================================================
--- lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java (original)
+++ lucene/solr/trunk/src/java/org/apache/solr/handler/admin/LukeRequestHandler.java Tue Jul 10 04:57:36 2007
@@ -71,7 +71,6 @@
* For more documentation see:
* http://wiki.apache.org/solr/LukeRequestHandler
*
- * @author ryan
* @version $Id$
* @since solr 1.2
*/
@@ -390,12 +389,18 @@
indexInfo.add("maxDoc", reader.maxDoc());
if( countTerms ) {
- TermEnum te = reader.terms();
- int numTerms = 0;
- while (te.next()) {
- numTerms++;
+ TermEnum te = null;
+ try{
+ te = reader.terms();
+ int numTerms = 0;
+ while (te.next()) {
+ numTerms++;
+ }
+ indexInfo.add("numTerms", numTerms );
+ }
+ finally{
+ if( te != null ) te.close();
}
- indexInfo.add("numTerms", numTerms );
}
indexInfo.add("version", reader.getVersion()); // TODO? Is this different then: IndexReader.getCurrentVersion( dir )?
@@ -538,38 +543,44 @@
private static Map<String,TopTermQueue> getTopTerms( IndexReader reader, Set<String> fields, int numTerms, Set<String> junkWords ) throws Exception
{
Map<String,TopTermQueue> info = new HashMap<String, TopTermQueue>();
- TermEnum terms = reader.terms();
- while (terms.next()) {
- String field = terms.term().field();
- String t = terms.term().text();
-
- // Compute distinct terms for every field
- TopTermQueue tiq = info.get( field );
- if( tiq == null ) {
- tiq = new TopTermQueue( numTerms );
- info.put( field, tiq );
- }
- tiq.distinctTerms++;
- tiq.histogram.add( terms.docFreq() ); // add the term to the histogram
-
- // Only save the distinct terms for fields we worry about
- if (fields != null && fields.size() > 0) {
- if( !fields.contains( field ) ) {
+ TermEnum terms = null;
+ try{
+ terms = reader.terms();
+ while (terms.next()) {
+ String field = terms.term().field();
+ String t = terms.term().text();
+
+ // Compute distinct terms for every field
+ TopTermQueue tiq = info.get( field );
+ if( tiq == null ) {
+ tiq = new TopTermQueue( numTerms+1 );
+ info.put( field, tiq );
+ }
+ tiq.distinctTerms++;
+ tiq.histogram.add( terms.docFreq() ); // add the term to the histogram
+
+ // Only save the distinct terms for fields we worry about
+ if (fields != null && fields.size() > 0) {
+ if( !fields.contains( field ) ) {
+ continue;
+ }
+ }
+ if( junkWords != null && junkWords.contains( t ) ) {
continue;
}
- }
- if( junkWords != null && junkWords.contains( t ) ) {
- continue;
- }
-
- if( terms.docFreq() > tiq.minFreq ) {
- tiq.put(new TopTermQueue.TermInfo(terms.term(), terms.docFreq()));
- if (tiq.size() >= numTerms) { // if tiq full
- tiq.pop(); // remove lowest in tiq
- tiq.minFreq = ((TopTermQueue.TermInfo)tiq.top()).docFreq; // reset minFreq
+
+ if( terms.docFreq() > tiq.minFreq ) {
+ tiq.put(new TopTermQueue.TermInfo(terms.term(), terms.docFreq()));
+ if (tiq.size() > numTerms) { // if tiq full
+ tiq.pop(); // remove lowest in tiq
+ tiq.minFreq = ((TopTermQueue.TermInfo)tiq.top()).docFreq; // reset minFreq
+ }
}
}
+ }
+ finally {
+ if( terms != null ) terms.close();
}
return info;
}