List of usage examples for org.apache.lucene.index DirectoryReader open
public static DirectoryReader open(final IndexCommit commit) throws IOException
From source file:com.mathworks.xzheng.searching.NumericRangeQueryTest.java
License:Apache License
public void testInclusive() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(dir)); // pub date of TTC was September 2006 NumericRangeQuery query = NumericRangeQuery.newIntRange("pubmonth", 200605, 200609, true, true); TopDocs matches = searcher.search(query, 10); /*//w w w . j av a2 s.com for(int i=0;i<matches.totalHits;i++) { System.out.println("match " + i + ": " + searcher.doc(matches.scoreDocs[i].doc).get("author")); } */ assertEquals(1, matches.totalHits); dir.close(); }
From source file:com.mathworks.xzheng.searching.NumericRangeQueryTest.java
License:Apache License
public void testExclusive() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(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 www .j a va 2 s. c o m dir.close(); }
From source file:com.mathworks.xzheng.searching.PhraseQueryTest.java
License:Apache License
protected void setUp() throws IOException { dir = new RAMDirectory(); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_46, new WhitespaceAnalyzer(Version.LUCENE_46)); IndexWriter writer = new IndexWriter(dir, config); Document doc = new Document(); doc.add(new Field("field", // 1 "the quick brown fox jumped over the lazy dog", // 1 Field.Store.YES, // 1 Field.Index.ANALYZED)); // 1 writer.addDocument(doc);/*ww w .j ava 2 s. c om*/ writer.close(); searcher = new IndexSearcher(DirectoryReader.open(dir)); }
From source file:com.mathworks.xzheng.searching.PrefixQueryTest.java
License:Apache License
public void testPrefix() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(dir)); Term term = new Term("category", //#A "/technology/computers/programming"); //#A PrefixQuery query = new PrefixQuery(term); //#A TopDocs matches = searcher.search(query, 10); //#A int programmingAndBelow = matches.totalHits; matches = searcher.search(new TermQuery(term), 10); //#B int justProgramming = matches.totalHits; assertTrue(programmingAndBelow > justProgramming); dir.close();/*w w w. j av a 2 s . c om*/ }
From source file:com.mathworks.xzheng.searching.ScoreTest.java
License:Apache License
public void testSimple() throws Exception { indexSingleFieldDocs(new Field[] { new Field("contents", "x", Field.Store.YES, Field.Index.ANALYZED) }); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(directory)); searcher.setSimilarity(new SimpleSimilarity()); Query query = new TermQuery(new Term("contents", "x")); Explanation explanation = searcher.explain(query, 0); System.out.println(explanation); TopDocs matches = searcher.search(query, 10); assertEquals(1, matches.totalHits);/*from ww w . j a va2s . c o m*/ assertEquals(1F, matches.scoreDocs[0].score, 0.0); }
From source file:com.mathworks.xzheng.searching.ScoreTest.java
License:Apache License
public void testWildcard() throws Exception { indexSingleFieldDocs(new Field[] { new Field("contents", "wild", Field.Store.YES, Field.Index.ANALYZED), new Field("contents", "child", Field.Store.YES, Field.Index.ANALYZED), new Field("contents", "mild", Field.Store.YES, Field.Index.ANALYZED), new Field("contents", "mildew", Field.Store.YES, Field.Index.ANALYZED) }); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(directory)); Query query = new WildcardQuery(new Term("contents", "?ild*")); //#A TopDocs matches = searcher.search(query, 10); assertEquals("child no match", 3, matches.totalHits); assertEquals("score the same", matches.scoreDocs[0].score, matches.scoreDocs[1].score, 0.0); assertEquals("score the same", matches.scoreDocs[1].score, matches.scoreDocs[2].score, 0.0); }
From source file:com.mathworks.xzheng.searching.ScoreTest.java
License:Apache License
public void testFuzzy() throws Exception { indexSingleFieldDocs(new Field[] { new Field("contents", "fuzzy", Field.Store.YES, Field.Index.ANALYZED), new Field("contents", "wuzzy", Field.Store.YES, Field.Index.ANALYZED) }); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(directory)); Query query = new FuzzyQuery(new Term("contents", "wuzza")); TopDocs matches = searcher.search(query, 10); assertEquals("both close enough", 2, matches.totalHits); assertTrue("wuzzy closer than fuzzy", matches.scoreDocs[0].score != matches.scoreDocs[1].score); Document doc = searcher.doc(matches.scoreDocs[0].doc); assertEquals("wuzza bear", "wuzzy", doc.get("contents")); }
From source file:com.mathworks.xzheng.searching.TermRangeQueryTest.java
License:Apache License
public void testTermRangeQuery() throws Exception { Directory dir = TestUtil.getBookIndexDirectory(); IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(dir)); TermRangeQuery query = new TermRangeQuery("title2", new BytesRef("d"), new BytesRef("j"), true, true); TopDocs matches = searcher.search(query, 100); /*// w ww .ja va2s. co m for(int i=0;i<matches.totalHits;i++) { System.out.println("match " + i + ": " + searcher.doc(matches.scoreDocs[i].doc).get("title2")); } */ assertEquals(3, matches.totalHits); dir.close(); }
From source file:com.mathworks.xzheng.tools.ChainedFilterTest.java
License:Apache License
public void setUp() throws Exception { directory = new RAMDirectory(); IndexWriterConfig config = new IndexWriterConfig(Version.LUCENE_46, new WhitespaceAnalyzer(Version.LUCENE_46)); IndexWriter writer = new IndexWriter(directory, config); Calendar cal = Calendar.getInstance(); cal.set(2009, 1, 1, 0, 0); // A for (int i = 0; i < MAX; i++) { Document doc = new Document(); doc.add(new Field("key", "" + (i + 1), Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.add(new Field("owner", (i < MAX / 2) ? "bob" : "sue", Field.Store.YES, Field.Index.NOT_ANALYZED)); doc.add(new Field("date", DateTools.timeToString(cal.getTimeInMillis(), DateTools.Resolution.DAY), Field.Store.YES, Field.Index.NOT_ANALYZED)); writer.addDocument(doc);/*from w w w . j av a 2s . c o m*/ cal.add(Calendar.DATE, 1); } writer.close(); searcher = new IndexSearcher(DirectoryReader.open(directory)); BooleanQuery bq = new BooleanQuery(); // B bq.add(new TermQuery(new Term("owner", "bob")), // B BooleanClause.Occur.SHOULD); // B bq.add(new TermQuery(new Term("owner", "sue")), // B BooleanClause.Occur.SHOULD); // B query = bq; cal.set(2099, 1, 1, 0, 0); dateFilter = TermRangeFilter.Less("date", // C new BytesRef(DateTools.timeToString( // C cal.getTimeInMillis(), // C DateTools.Resolution.DAY)));// C bobFilter = new CachingWrapperFilter( // D new QueryWrapperFilter( // D new TermQuery(new Term("owner", "bob")))); // D sueFilter = new CachingWrapperFilter( // E new QueryWrapperFilter( // E new TermQuery(new Term("owner", "sue")))); // E }
From source file:com.mathworks.xzheng.tools.FastVectorHighlighterSample.java
License:Apache License
static void searchIndex(String filename) throws Exception { QueryParser parser = new QueryParser(Version.LUCENE_46, F, analyzer); Query query = parser.parse(QUERY); FastVectorHighlighter highlighter = getHighlighter(); // #C FieldQuery fieldQuery = highlighter.getFieldQuery(query); // #D IndexSearcher searcher = new IndexSearcher(DirectoryReader.open(dir)); TopDocs docs = searcher.search(query, 10); FileWriter writer = new FileWriter(filename); writer.write("<html>"); writer.write("<body>"); writer.write("<p>QUERY : " + QUERY + "</p>"); for (ScoreDoc scoreDoc : docs.scoreDocs) { String snippet = highlighter.getBestFragment( // #E fieldQuery, searcher.getIndexReader(), // #E scoreDoc.doc, F, 100); // #E if (snippet != null) { writer.write(scoreDoc.doc + " : " + snippet + "<br/>"); }//from w w w . j ava2 s.c o m } writer.write("</body></html>"); writer.close(); }