List of usage examples for org.apache.lucene.search IndexSearcher search
protected void search(List<LeafReaderContext> leaves, Weight weight, Collector collector) throws IOException
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(); }