List of usage examples for org.apache.lucene.search IndexSearcher search
public <C extends Collector, T> T search(Query query, CollectorManager<C, T> collectorManager) throws IOException
From source file:aos.lucene.search.msc.BasicSearchingTest.java
License:Apache License
public void testTerm() throws Exception { Directory dir = FSDirectory.open(new File("target/index")); IndexReader reader = DirectoryReader.open(dir); IndexSearcher searcher = new IndexSearcher(reader); Term t = new Term("subject", "ant"); Query query = new TermQuery(t); TopDocs docs = searcher.search(query, 10); assertEquals("Ant in Action", 1, docs.totalHits); t = new Term("subject", "junit"); docs = searcher.search(new TermQuery(t), 10); assertEquals("Ant in Action, " + "JUnit in Action, Second Edition", 2, docs.totalHits); reader.close();/*w w w. j a v a 2s. c om*/ dir.close(); }
From source file:aos.lucene.search.msc.BasicSearchingTest.java
License:Apache License
/** * #A Obtain directory from TestUtil #B Create IndexSearcher #C Confirm one * hit for "ant" #D Confirm two hits for "junit" *//*from w ww.j a v a 2 s . c o m*/ public void testKeyword() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); Term t = new Term("isbn", "9781935182023"); Query query = new TermQuery(t); TopDocs docs = searcher.search(query, 10); assertEquals("JUnit in Action, Second Edition", 1, docs.totalHits); searcher.close(); dir.close(); }
From source file:aos.lucene.search.msc.BasicSearchingTest.java
License:Apache License
public void testQueryParser() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); QueryParser parser = new QueryParser(Version.LUCENE_46, "contents", new SimpleAnalyzer()); Query query = parser.parse("+JUNIT +ANT -MOCK"); TopDocs docs = searcher.search(query, 10); assertEquals(1, docs.totalHits);/* w ww .ja va 2s. co m*/ Document d = searcher.doc(docs.scoreDocs[0].doc); assertEquals("Ant in Action", d.get("title")); query = parser.parse("mock OR junit"); docs = searcher.search(query, 10); assertEquals("Ant in Action, " + "JUnit in Action, Second Edition", 2, docs.totalHits); searcher.close(); dir.close(); }
From source file:aos.lucene.search.msc.BooleanQueryTest.java
License:Apache License
public void testAnd() throws Exception { TermQuery searchingBooks = new TermQuery(new Term("subject", "search")); //#1 Query books2010 = //#2 NumericRangeQuery.newIntRange("pubmonth", 201001, //#2 201012, //#2 true, true); //#2 BooleanQuery searchingBooks2010 = new BooleanQuery(); //#3 searchingBooks2010.add(searchingBooks, BooleanClause.Occur.MUST); //#3 searchingBooks2010.add(books2010, BooleanClause.Occur.MUST); //#3 Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); TopDocs matches = searcher.search(searchingBooks2010, 10); assertTrue(TestUtil.hitsIncludeTitle(searcher, matches, "Lucene in Action, Second Edition")); searcher.close();//w ww . ja v a2s. c om dir.close(); }
From source file:aos.lucene.search.msc.BooleanQueryTest.java
License:Apache License
public void testOr() throws Exception { TermQuery methodologyBooks = new TermQuery( // new Term("category", // "/technology/computers/programming/methodology")); // TermQuery easternPhilosophyBooks = new TermQuery( // new Term("category", // "/philosophy/eastern")); // BooleanQuery enlightenmentBooks = new BooleanQuery(); // enlightenmentBooks.add(methodologyBooks, // BooleanClause.Occur.SHOULD); // enlightenmentBooks.add(easternPhilosophyBooks, // BooleanClause.Occur.SHOULD); // Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); TopDocs matches = searcher.search(enlightenmentBooks, 10); LOGGER.info("or = " + enlightenmentBooks); assertTrue(TestUtil.hitsIncludeTitle(searcher, matches, "Extreme Programming Explained")); assertTrue(TestUtil.hitsIncludeTitle(searcher, matches, "Tao Te Ching \u9053\u5FB7\u7D93")); searcher.close();//from ww w . j av a 2s . co m dir.close(); }
From source file:aos.lucene.search.msc.Explainer.java
License:Apache License
public static void main(String[] args) throws Exception { if (args.length != 2) { System.err.println("Usage: Explainer <index dir> <query>"); System.exit(1);//from ww w. j av a2 s. co m } String indexDir = args[0]; String queryExpression = args[1]; Directory directory = FSDirectory.open(new File(indexDir)); QueryParser parser = new QueryParser(Version.LUCENE_46, "contents", new SimpleAnalyzer()); Query query = parser.parse(queryExpression); LOGGER.info("Query: " + queryExpression); IndexSearcher searcher = new IndexSearcher(directory); TopDocs topDocs = searcher.search(query, 10); for (ScoreDoc match : topDocs.scoreDocs) { Explanation explanation = searcher.explain(query, match.doc); //#A LOGGER.info("----------"); Document doc = searcher.doc(match.doc); LOGGER.info(doc.get("title")); LOGGER.info(explanation.toString()); //#B } searcher.close(); directory.close(); }
From source file:aos.lucene.search.msc.Fragments.java
License:Apache License
public void testSearchSigs() throws Exception { Query query = null;/*from ww w .j av a 2 s . c om*/ Filter filter = null; TopDocs hits; TopFieldDocs fieldHits; Sort sort = null; Collector collector = null; int n = 10; IndexSearcher searcher = null; hits = searcher.search(query, n); hits = searcher.search(query, filter, n); fieldHits = searcher.search(query, filter, n, sort); searcher.search(query, collector); searcher.search(query, filter, collector); }
From source file:aos.lucene.search.msc.NearRealTimeTest.java
License:Apache License
public void testNearRealTime() throws Exception { Directory dir = new RAMDirectory(); IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_46), IndexWriter.MaxFieldLength.UNLIMITED); for (int i = 0; i < 10; i++) { Document doc = new Document(); doc.add(new Field("id", "" + i, Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS)); doc.add(new Field("text", "aaa", Field.Store.NO, Field.Index.ANALYZED)); writer.addDocument(doc);/*from w w w.j a v a 2 s . c o m*/ } IndexReader reader = writer.getReader(); IndexSearcher searcher = new IndexSearcher(reader); Query query = new TermQuery(new Term("text", "aaa")); TopDocs docs = searcher.search(query, 1); assertEquals(10, docs.totalHits); writer.deleteDocuments(new Term("id", "7")); Document doc = new Document(); doc.add(new Field("id", "11", Field.Store.NO, Field.Index.NOT_ANALYZED_NO_NORMS)); doc.add(new Field("text", "bbb", Field.Store.NO, Field.Index.ANALYZED)); writer.addDocument(doc); IndexReader newReader = reader.reopen(); assertFalse(reader == newReader); reader.close(); searcher = new IndexSearcher(newReader); TopDocs hits = searcher.search(query, 10); assertEquals(9, hits.totalHits); query = new TermQuery(new Term("text", "bbb")); hits = searcher.search(query, 1); assertEquals(1, hits.totalHits); newReader.close(); writer.close(); }
From source file:aos.lucene.search.msc.NumericRangeQueryTest.java
License:Apache License
public void testInclusive() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); // pub date of TTC was September 2006 NumericRangeQuery query = NumericRangeQuery.newIntRange("pubmonth", 200605, 200609, true, true); TopDocs matches = searcher.search(query, 10); /*//from ww w .j a v a 2s.co m for(int i=0;i<matches.totalHits;i++) { LOGGER.info("match " + i + ": " + searcher.doc(matches.scoreDocs[i].doc).get("author")); } */ assertEquals(1, matches.totalHits); searcher.close(); dir.close(); }
From source file:aos.lucene.search.msc.NumericRangeQueryTest.java
License:Apache License
public void testExclusive() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(dir); // pub date of TTC was September 2006 NumericRangeQuery query = NumericRangeQuery.newIntRange("pubmonth", 200605, 200609, false, false); TopDocs matches = searcher.search(query, 10); assertEquals(0, matches.totalHits);//from ww w .j av a 2 s . com searcher.close(); dir.close(); }