List of usage examples for org.apache.lucene.search IndexSearcher IndexSearcher
public IndexSearcher(IndexReaderContext context)
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Test public void termQuerySearch() throws IOException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/* w ww . j a va2s . co m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); TermQuery tq = new TermQuery(new Term("content", "hops")); assertEquals(1, searcher.search(tq, 1).totalHits); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Test public void phraseQuerySearch() throws IOException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*w ww . j av a 2s . c o m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); PhraseQuery.Builder builder = new PhraseQuery.Builder(); builder.add(new Term("content", "fox")).add(new Term("content", "hops")); assertEquals(1, searcher.search(builder.build(), 1).totalHits); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*w w w .j a v a 2s.c o m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new StandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new StandardQueryParser(new StandardAnalyzer()).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox jumps\"", query.toString()); assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Test public void testTermQuery() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "I work for the united nations", TextField.TYPE_STORED)); writer.addDocument(doc);//from w w w . j a v a 2s .c o m searcher = new IndexSearcher(DirectoryReader.open(writer, false)); StandardQueryParser parser = new StandardQueryParser(new SimpleAnalyzer()); Query query = parser.parse("united nations", "content"); assertEquals(1, searcher.search(query, 1).totalHits); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearch() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);// w w w . j ava 2s . c o m searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new SKOSStandardQueryParser(skosAnalyzer).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = new StandardQueryParser(new StandardAnalyzer()).parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:\"fox jumps\"", query.toString()); assertEquals("org.apache.lucene.search.PhraseQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSStandardQueryParserTest.java
License:Apache License
@Test public void queryParserSearchWithBoosts() throws IOException, QueryNodeException { Document doc = new Document(); doc.add(new Field("content", "The quick brown fox jumps over the lazy dog", TextField.TYPE_STORED)); writer.addDocument(doc);/*from w w w . j av a 2 s.co m*/ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); SKOSStandardQueryParser parser = new SKOSStandardQueryParser(skosAnalyzer); parser.setBoost(SKOSType.ALT, 0.5f); Query query = parser.parse("\"fox jumps\"", "content"); assertEquals(1, searcher.search(query, 1).totalHits); // boosts do not work in phrase queries assertEquals("content:\"fox (jumps hops leaps)\"", query.toString()); assertEquals("org.apache.lucene.search.MultiPhraseQuery", query.getClass().getName()); query = parser.parse("fox jumps", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:fox (content:jumps content:hops^0.5 content:leaps^0.5)", query.toString()); assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); query = new SKOSStandardQueryParser(new StandardAnalyzer()).parse("fox jumps", "content"); assertEquals(1, searcher.search(query, 1).totalHits); assertEquals("content:fox content:jumps", query.toString()); assertEquals("org.apache.lucene.search.BooleanQuery", query.getClass().getName()); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSURIFilterTest.java
License:Apache License
@Test public void singleUriExpansionWithStoredField() throws IOException { Document doc = new Document(); doc.add(new Field("subject", "http://example.com/concept/1", TextField.TYPE_STORED)); writer.addDocument(doc);//from ww w . j a v a2 s. c o m searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new TermQuery(new Term("subject", "leaps")); TopDocs results = searcher.search(query, 10); assertEquals(1, results.totalHits); Document indexDoc = searcher.doc(results.scoreDocs[0].doc); String[] fieldValues = indexDoc.getValues("subject"); assertEquals(1, fieldValues.length); assertEquals(fieldValues[0], "http://example.com/concept/1"); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSURIFilterTest.java
License:Apache License
@Test public void singleUriExpansionWithUnstoredField() throws IOException { Document doc = new Document(); doc.add(new Field("subject", "http://example.com/concept/1", TextField.TYPE_NOT_STORED)); writer.addDocument(doc);// w w w .j av a2 s . c o m searcher = new IndexSearcher(DirectoryReader.open(writer, false)); Query query = new TermQuery(new Term("subject", "jumps")); TopDocs results = searcher.search(query, 10); assertEquals(1, results.totalHits); Document indexDoc = searcher.doc(results.scoreDocs[0].doc); String[] fieldValues = indexDoc.getValues("subject"); assertEquals(0, fieldValues.length); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSURIFilterTest.java
License:Apache License
@Test public void multipleURIExpansion() throws IOException { Document doc = new Document(); doc.add(new Field("subject", "http://example.com/concept/1", TextField.TYPE_STORED)); doc.add(new Field("subject", "http://example.com/concept/2", TextField.TYPE_STORED)); writer.addDocument(doc);//from www .ja va2 s.c om searcher = new IndexSearcher(DirectoryReader.open(writer, false)); // querying for alternative term of concept 1 Query query = new TermQuery(new Term("subject", "hops")); TopDocs results = searcher.search(query, 10); assertEquals(1, results.totalHits); Document indexDoc = searcher.doc(results.scoreDocs[0].doc); String[] fieldValues = indexDoc.getValues("subject"); assertEquals(2, fieldValues.length); // querying for alternative term of concept 2 query = new TermQuery(new Term("subject", "speedy")); results = searcher.search(query, 10); assertEquals(1, results.totalHits); indexDoc = searcher.doc(results.scoreDocs[0].doc); fieldValues = indexDoc.getValues("subject"); assertEquals(2, fieldValues.length); }
From source file:at.ac.univie.mminf.luceneSKOS.test.termexpansion.AbstractTermExpansionTest.java
License:Apache License
/** * This test indexes a sample metadata record (=lucene document) having a * "title", "description", and "subject" field, which contains plain subject * terms./* w ww . j ava2 s .c o m*/ * <p/> * A search for "arms" doesn't return that record because the term "arms" is * not explicitly contained in the record (document). * * @throws IOException * @throws LockObtainFailedException * @throws CorruptIndexException */ @Test public void noExpansion() throws IOException { /* defining the document to be indexed */ Document doc = new Document(); doc.add(new Field("title", "Spearhead", TextField.TYPE_STORED)); doc.add(new Field("description", "Roman iron spearhead. The spearhead was attached to one end of a wooden shaft..." + "The spear was mainly a thrusting weapon, but could also be thrown. " + "It was the principal weapon of the auxiliary soldier... " + "(second - fourth century, Arbeia Roman Fort).", TextField.TYPE_NOT_STORED)); doc.add(new Field("subject", "weapons", TextField.TYPE_NOT_STORED)); /* setting up a writer with a default (simple) analyzer */ writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(new SimpleAnalyzer())); /* adding the document to the index */ writer.addDocument(doc); /* defining a query that searches over all fields */ BooleanQuery.Builder builder = new BooleanQuery.Builder(); builder.add(new TermQuery(new Term("title", "arms")), BooleanClause.Occur.SHOULD) .add(new TermQuery(new Term("description", "arms")), BooleanClause.Occur.SHOULD) .add(new TermQuery(new Term("subject", "arms")), BooleanClause.Occur.SHOULD); /* creating a new searcher */ searcher = new IndexSearcher(DirectoryReader.open(writer, false)); TopDocs results = searcher.search(builder.build(), 10); /* no results are returned since there is no term match */ assertEquals(0, results.totalHits); }