Example usage for org.apache.lucene.index IndexReader maxDoc

List of usage examples for org.apache.lucene.index IndexReader maxDoc

Introduction

In this page you can find the example usage for org.apache.lucene.index IndexReader maxDoc.

Prototype

public abstract int maxDoc();

Source Link

Document

Returns one greater than the largest possible document number.

Usage

From source file:com.isotrol.impe3.nr.core.LocaleFilter.java

License:Open Source License

@Override
public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
    final int n = reader.maxDoc();
    // Search for all
    final OpenBitSet all = getTerm(n, Schema.LOCALE, Schema.ALL_LOCALES, reader);
    // Locale loop
    // locale = requested || (locale = ALL && other != requested)
    final String localeValue = locale.toString();
    final OpenBitSet result = getTerm(n, Schema.OTHER_LOCALE, localeValue, reader);
    result.flip(0, n);//from  w  w w  . j ava2s .  com
    result.intersect(all);
    result.union(getTerm(n, Schema.LOCALE, localeValue, reader));
    return result;
}

From source file:com.jaeksoft.searchlib.index.IndexStatistics.java

License:Open Source License

protected IndexStatistics(IndexReader indexReader) {
    maxDoc = indexReader.maxDoc();
    numDocs = indexReader.numDocs();/*from  w w  w . ja  v a 2  s  .co m*/
    numDeletedDocs = indexReader.numDeletedDocs();
    hasDeletions = indexReader.hasDeletions();
    isOptimized = indexReader.isOptimized();
}

From source file:com.jivesoftware.forum.database.FieldFilter.java

License:Open Source License

public BitSet bits(IndexReader reader) throws IOException {
    //Create a new BitSet with a capacity equal to the size of the index.
    BitSet bits = new BitSet(reader.maxDoc());
    //Match all search terms.
    for (int i = 0; i < searchTerms.length; i++) {
        //Get an enumeration of all the documents that match the specified
        //field value.
        TermDocs matchingDocs = reader.termDocs(searchTerms[i]);
        try {//from   w w  w . ja va  2  s.  co  m
            if (matchingDocs != null) {
                while (matchingDocs.next()) {
                    bits.set(matchingDocs.doc());
                }
            }
        } finally {
            if (matchingDocs != null) {
                matchingDocs.close();
            }
        }
    }
    return bits;
}

From source file:com.leavesfly.lia.advsearching.BooksLikeThis.java

License:Apache License

public static void main(String[] args) throws IOException {
    Directory dir = TestUtil.getBookIndexDirectory();

    IndexReader reader = IndexReader.open(dir);
    int numDocs = reader.maxDoc();

    BooksLikeThis blt = new BooksLikeThis(reader);
    for (int i = 0; i < numDocs; i++) { // #1
        System.out.println();//from   ww  w  .j a v  a2s.c o  m
        Document doc = reader.document(i);
        System.out.println(doc.get("title"));

        Document[] docs = blt.docsLike(i, 10); // #2
        if (docs.length == 0) {
            System.out.println("  None like this");
        }
        for (Document likeThisDoc : docs) {
            System.out.println("  -> " + likeThisDoc.get("title"));
        }
    }
    reader.close();
    dir.close();
}

From source file:com.leavesfly.lia.advsearching.CategorizerTest.java

License:Apache License

private void buildCategoryVectors() throws IOException {
    IndexReader reader = IndexReader.open(TestUtil.getBookIndexDirectory());

    int maxDoc = reader.maxDoc();

    for (int i = 0; i < maxDoc; i++) {
        if (!reader.isDeleted(i)) {
            Document doc = reader.document(i);
            String category = doc.get("category");

            Map vectorMap = (Map) categoryMap.get(category);
            if (vectorMap == null) {
                vectorMap = new TreeMap();
                categoryMap.put(category, vectorMap);
            }/*from w  w w.  jav  a2  s.  co m*/

            TermFreqVector termFreqVector = reader.getTermFreqVector(i, "subject");

            addTermFreqToMap(vectorMap, termFreqVector);
        }
    }
}

From source file:com.leavesfly.lia.extsearch.filters.SpecialsFilter.java

License:Apache License

public DocIdSet getDocIdSet(IndexReader reader) throws IOException {
    OpenBitSet bits = new OpenBitSet(reader.maxDoc());

    String[] isbns = accessor.isbns(); // #1

    int[] docs = new int[1];
    int[] freqs = new int[1];

    for (String isbn : isbns) {
        if (isbn != null) {
            TermDocs termDocs = reader.termDocs(new Term("isbn", isbn)); // #2
            int count = termDocs.read(docs, freqs);
            if (count == 1) { // #3
                bits.set(docs[0]); // #3
            } // #3
        }/*from w  ww  .j ava  2  s . c o  m*/
    }

    return bits;
}

From source file:com.leavesfly.lia.tool.BooksMoreLikeThis.java

License:Apache License

public static void main(String[] args) throws Throwable {

    String indexDir = System.getProperty("index.dir");
    FSDirectory directory = FSDirectory.open(new File(indexDir));
    IndexReader reader = IndexReader.open(directory);

    IndexSearcher searcher = new IndexSearcher(reader);

    int numDocs = reader.maxDoc();

    MoreLikeThis mlt = new MoreLikeThis(reader); // #A
    mlt.setFieldNames(new String[] { "title", "author" });
    mlt.setMinTermFreq(1); // #B
    mlt.setMinDocFreq(1);//w  ww .ja  va  2  s . c  om

    for (int docID = 0; docID < numDocs; docID++) { // #C
        System.out.println();
        Document doc = reader.document(docID);
        System.out.println(doc.get("title"));

        Query query = mlt.like(docID); // #D
        System.out.println("  query=" + query);

        TopDocs similarDocs = searcher.search(query, 10);
        if (similarDocs.totalHits == 0)
            System.out.println("  None like this");
        for (int i = 0; i < similarDocs.scoreDocs.length; i++) {
            if (similarDocs.scoreDocs[i].doc != docID) { // #E
                doc = reader.document(similarDocs.scoreDocs[i].doc);
                System.out.println("  -> " + doc.getField("title").stringValue());
            }
        }
    }

    searcher.close();
    reader.close();
    directory.close();
}

From source file:com.marc.lastweek.business.util.lucene.filters.StateFilter.java

License:Open Source License

@Override
public BitSet bits(IndexReader indexreader) throws IOException {
    BitSet bitSet = new BitSet(indexreader.maxDoc());
    TermDocs termDocs = indexreader.termDocs(new Term("state", "0"));
    while (termDocs.next()) {
        bitSet.set(termDocs.doc());// www.  j  a  v  a2s . com
    }
    return bitSet;
}

From source file:com.mathworks.xzheng.advsearching.CategorizerTest.java

License:Apache License

private void buildCategoryVectors() throws IOException {
    IndexReader reader = IndexReader.open(TestUtil.getBookIndexDirectory());

    int maxDoc = reader.maxDoc();

    for (int i = 0; i < maxDoc; i++) {
        if (!reader.document(i)) {
            Document doc = reader.document(i);
            String category = doc.get("category");

            Map vectorMap = (Map) categoryMap.get(category);
            if (vectorMap == null) {
                vectorMap = new TreeMap();
                categoryMap.put(category, vectorMap);
            }//from   w ww.  ja  v  a2  s .com

            Terms terms = reader.getTermVector(i, "subject");

            addTermFreqToMap(vectorMap, terms);
        }
    }
}

From source file:com.mathworks.xzheng.tools.BooksMoreLikeThis.java

License:Apache License

public static void main(String[] args) throws Throwable {

    String indexDir = System.getProperty("index.dir");
    FSDirectory directory = FSDirectory.open(new File(indexDir));
    IndexReader reader = IndexReader.open(directory);

    IndexSearcher searcher = new IndexSearcher(reader);

    int numDocs = reader.maxDoc();

    MoreLikeThis mlt = new MoreLikeThis(reader); // #A
    mlt.setFieldNames(new String[] { "title", "author" });
    mlt.setMinTermFreq(1); // #B
    mlt.setMinDocFreq(1);/*from  w  w w .ja  v  a2  s  .  c  o  m*/

    for (int docID = 0; docID < numDocs; docID++) { // #C
        System.out.println();
        Document doc = reader.document(docID);
        System.out.println(doc.get("title"));

        Query query = mlt.like(docID); // #D
        System.out.println("  query=" + query);

        TopDocs similarDocs = searcher.search(query, 10);
        if (similarDocs.totalHits == 0)
            System.out.println("  None like this");
        for (int i = 0; i < similarDocs.scoreDocs.length; i++) {
            if (similarDocs.scoreDocs[i].doc != docID) { // #E
                doc = reader.document(similarDocs.scoreDocs[i].doc);
                System.out.println("  -> " + doc.getField("title").stringValue());
            }
        }
    }

    reader.close();
    directory.close();
}