diff --git a/contrib/miscellaneous/src/java/org/apache/lucene/misc/HighFreqTerms.java b/contrib/miscellaneous/src/java/org/apache/lucene/misc/HighFreqTerms.java index f530d860814..71c5b5a236f 100644 --- a/contrib/miscellaneous/src/java/org/apache/lucene/misc/HighFreqTerms.java +++ b/contrib/miscellaneous/src/java/org/apache/lucene/misc/HighFreqTerms.java @@ -1,58 +1,20 @@ package org.apache.lucene.misc; -/* ==================================================================== - * The Apache Software License, Version 1.1 - * - * Copyright (c) 2001,2004 The Apache Software Foundation. All rights - * reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. The end-user documentation included with the redistribution, - * if any, must include the following acknowledgment: - * "This product includes software developed by the - * Apache Software Foundation (http://www.apache.org/)." - * Alternately, this acknowledgment may appear in the software itself, - * if and wherever such third-party acknowledgments normally appear. - * - * 4. The names "Apache" and "Apache Software Foundation" and - * "Apache Lucene" must not be used to endorse or promote products - * derived from this software without prior written permission. For - * written permission, please contact apache@apache.org. - * - * 5. Products derived from this software may not be called "Apache", - * "Apache Lucene", nor may "Apache" appear in their name, without - * prior written permission of the Apache Software Foundation. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED - * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES - * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF - * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT - * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * ==================================================================== - * - * This software consists of voluntary contributions made by many - * individuals on behalf of the Apache Software Foundation. For more - * information on the Apache Software Foundation, please see - * . - */ +/** + * Copyright 2004 The Apache Software Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ import org.apache.lucene.index.IndexReader; import org.apache.lucene.index.Term; @@ -66,58 +28,69 @@ import org.apache.lucene.util.PriorityQueue; * @version $Id$ */ public class HighFreqTerms { - - // The top numTerms will be displayed - public static final int numTerms = 100; + + // The top numTerms will be displayed + public static final int numTerms = 100; - public static void main(String[] args) throws Exception { - IndexReader reader = null; - if (args.length == 1) { - reader = IndexReader.open(args[0]); - } else { - usage(); - System.exit(1); - } + public static void main(String[] args) throws Exception { + IndexReader reader = null; + String field = null; + if (args.length == 1) { + reader = IndexReader.open(args[0]); + } else if (args.length == 2) { + reader = IndexReader.open(args[0]); + field = args[1]; + } else { + usage(); + System.exit(1); + } - TermInfoQueue tiq = new TermInfoQueue(numTerms); - TermEnum terms = reader.terms(); + TermInfoQueue tiq = new TermInfoQueue(numTerms); + TermEnum terms = reader.terms(); - while (terms.next()) { - tiq.insert(new TermInfo(terms.term(), terms.docFreq())); - } + if (field != null) { + while (terms.next()) { + if (terms.term().field().equals(field)) { + tiq.insert(new TermInfo(terms.term(), terms.docFreq())); + } + } + } + else { + while (terms.next()) { + tiq.insert(new TermInfo(terms.term(), terms.docFreq())); + } + } + while (tiq.size() != 0) { + TermInfo termInfo = (TermInfo) tiq.pop(); + System.out.println(termInfo.term + " " + termInfo.docFreq); + } - while (tiq.size() != 0) { - TermInfo termInfo = (TermInfo) tiq.pop(); - System.out.println(termInfo.term + " " + termInfo.docFreq); - } + reader.close(); + } - reader.close(); - } - - private static void usage() { - System.out.println( - "\n\n" - + "java org.apache.lucene.misc.HighFreqTerms \n\n"); - } + private static void usage() { + System.out.println( + "\n\n" + + "java org.apache.lucene.misc.HighFreqTerms [field]\n\n"); + } } final class TermInfo { - TermInfo(Term t, int df) { - term = t; - docFreq = df; - } - int docFreq; - Term term; + TermInfo(Term t, int df) { + term = t; + docFreq = df; + } + int docFreq; + Term term; } final class TermInfoQueue extends PriorityQueue { - TermInfoQueue(int size) { - initialize(size); - } - - protected final boolean lessThan(Object a, Object b) { - TermInfo termInfoA = (TermInfo) a; - TermInfo termInfoB = (TermInfo) b; - return termInfoA.docFreq < termInfoB.docFreq; - } + TermInfoQueue(int size) { + initialize(size); + } + protected final boolean lessThan(Object a, Object b) { + TermInfo termInfoA = (TermInfo) a; + TermInfo termInfoB = (TermInfo) b; + return termInfoA.docFreq < termInfoB.docFreq; + } }