Example usage for org.apache.lucene.search IndexSearcher search

List of usage examples for org.apache.lucene.search IndexSearcher search

Introduction

In this page you can find the example usage for org.apache.lucene.search IndexSearcher search.

Prototype

protected void search(List<LeafReaderContext> leaves, Weight weight, Collector collector) throws IOException 

Source Link

Document

Lower-level search API.

Usage

From source file:com.zimbra.cs.index.LuceneIndex.java

License:Open Source License

/**
 * Runs a common search query + common sort order (and throw away the result) to warm up the Lucene cache and OS
 * file system cache.//from w  ww .  jav  a 2 s.  co  m
 */
@Override
public synchronized void warmup() {
    if (SEARCHER_CACHE.asMap().containsKey(mailbox.getId())
            || GAL_SEARCHER_CACHE.containsKey(mailbox.getId())) {
        return; // already warmed up
    }
    long start = System.currentTimeMillis();
    IndexSearcher searcher = null;
    try {
        searcher = (IndexSearcher) openSearcher();
        searcher.search(new TermQuery(new Term(LuceneFields.L_CONTENT, "zimbra")), 1,
                new Sort(new SortField(LuceneFields.L_SORT_DATE, SortField.STRING, true)));
    } catch (IOException e) {
        ZimbraLog.search.warn("Failed to warm up", e);
    } finally {
        Closeables.closeQuietly(searcher);
    }
    ZimbraLog.search.debug("WarmUpLuceneSearcher elapsed=%d", System.currentTimeMillis() - start);
}

From source file:concurrency.SearchFiles.java

License:Apache License

/** Simple command-line based search demo. */
public static void main(String[] args) throws Exception {
    String usage = "Usage:\tjava org.apache.lucene.demo.SearchFiles [-index dir] [-field f] [-repeat n] [-queries file] [-query string] [-raw] [-paging hitsPerPage]\n\nSee http://lucene.apache.org/core/4_1_0/demo/ for details.";
    if (args.length > 0 && ("-h".equals(args[0]) || "-help".equals(args[0]))) {
        System.out.println(usage);
        System.exit(0);/*from  w ww .  j a  va 2 s  . c  om*/
    }

    String index = "/Users/rene/learn/topic-index"; //"/Users/rene/learn/learn5/lucene/finder/index";
    String field = "contents";
    String queries = null;
    int repeat = 0;
    boolean raw = false;
    // regular search
    // String queryString = "computer";

    String queryString = "viewresolver spring"; //"fitness";// "ExecutorService";//"EventListener";
    // //"Country"; //"Preconditions";

    // wildcard query
    // String queryString = "te*t";

    // fuzzy query
    // String queryString = "roam~2";

    // phrase query
    // String queryString = "\"apache lucene\"~5";

    // boolean search
    // String queryString = "\"networks\" AND \"protocol\"";

    // boosted search
    // String queryString = "computer^10 crime";

    int hitsPerPage = 100;
    IndexReader reader = DirectoryReader.open(FSDirectory.open(Paths.get(index)));
    IndexSearcher searcher = new IndexSearcher(reader);
    Analyzer analyzer = new StandardAnalyzer();

    BufferedReader in = null;
    QueryParser parser = new QueryParser(field, analyzer);

    Query query = parser.parse(queryString);

    System.out.println("Searching for: " + query.toString(field));

    searcher.search(query, null, 1000); //hitsPerPage); //100);

    doSearch(in, searcher, query, hitsPerPage, raw, queries == null && queryString == null);

    reader.close();
}