Example usage for org.apache.lucene.index IndexOptions IndexOptions

List of usage examples for org.apache.lucene.index IndexOptions IndexOptions

Introduction

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

Prototype

IndexOptions

Source Link

Usage

From source file:edu.stanford.muse.index.Indexer.java

License:Apache License

private static void testQueries()
        throws IOException, ParseException, GeneralSecurityException, ClassNotFoundException {
    Indexer li = new Indexer("/tmp", new IndexOptions());

    // public EmailDocument(String id, String folderName, Address[] to, Address[] cc, Address[] bcc, Address[] from, String subject, String messageID, Date date)
    EmailDocument ed = new EmailDocument("1", "dummy", "dummy", new Address[0], new Address[0], new Address[0],
            new Address[0], "", "", new Date());
    li.indexSubdoc(" ssn 123-45 6789 ", "name 1 is John Smith.  credit card # 1234 5678 9012 3456 ", ed, null);
    ed = new EmailDocument("2", "dummy", "dummy", new Address[0], new Address[0], new Address[0],
            new Address[0], "", "", new Date());
    li.indexSubdoc(" ssn 123 45 6789",
            "name 1 is John Smith.  credit card not ending with a non-digit # 1234 5678 9012 345612 ", ed,
            null);//from w w w . j  a va2  s  .co m
    ed = new EmailDocument("3", "dummy", "dummy", new Address[0], new Address[0], new Address[0],
            new Address[0], "", "", new Date());
    li.indexSubdoc(" ssn 123 45 6789", "name 1 is John Smith.  credit card # 111234 5678 9012 3456 ", ed, null);
    ed = new EmailDocument("4", "dummy", "dummy", new Address[0], new Address[0], new Address[0],
            new Address[0], "", "", new Date());
    li.indexSubdoc(" ssn 123 45 6789", "\nmy \nfirst \n book is \n something ", ed, null);
    ed = new EmailDocument("5", "dummy", "dummy", new Address[0], new Address[0], new Address[0],
            new Address[0], "", "", new Date());
    li.indexSubdoc("passport number k4190893", "\nmy \nfirst \n book is \n something ", ed, null);

    li.close();

    li.setupForRead();
    String q = "john";
    Collection<EmailDocument> docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "/j..n/\\\\*";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "\"john\"";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "\"john smith\"";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "john*smith";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "title:john";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "title:subject";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "body:johns";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "title:johns";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "joh*";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "/j..n/";
    //      q = "/\\b(\\d{9}|\\d{3}-\\d{2}-\\d{4})\\b/";
    docs = li.lookupDocs(q, QueryType.FULL);
    System.out.println("hits for: " + q + " = " + docs.size());

    // look for sequence of 4-4-4-4 . the .* at the beginning and end is needed.
    q = "[0-9]{3}[\\- ]*[0-9]{2}[ \\-]*[0-9]{4}";
    docs = li.lookupDocs(q, QueryType.REGEX);
    System.out.println("hits for: " + q + " = " + docs.size());

    // look for sequence of 3-2-4
    //q = "[0-9]{3}[ \\-]*[0-9]{2}[ \\-]*[0-9]{4}";
    q = "123-45[ \\-]*[0-9]{4}";
    System.out.println("hits for: " + q + " = " + li.lookupDocs(q, QueryType.REGEX).size());

    // look for sequence of 3-2-4
    q = "first\\sbook";
    docs = li.lookupDocs(q, QueryType.REGEX);
    System.out.println("hits for: " + q + " = " + docs.size());

    q = "ssn";
    int numHits = li.getNumHits(q, false, QueryType.FULL);
    System.err.println("Number of hits for: " + q + " is " + numHits);

    q = "[A-Za-z][0-9]{7}";
    docs = li.lookupDocs(q, QueryType.REGEX);
    System.out.println("hits for: " + q + " = " + docs.size());

    li.analyzer = null;
    li.isearcher = null;
    li.parser = null;
    li.parserOriginal = null;
    li.parserSubject = null;
    li.parserCorrespondents = null;
    Util.writeObjectToFile("/tmp/1", li);
    li = (Indexer) Util.readObjectFromFile("/tmp/1");
}