List of usage examples for org.apache.lucene.index IndexWriter IndexWriter
public IndexWriter(Directory d, IndexWriterConfig conf) throws IOException
conf
. From source file:at.ac.univie.mminf.luceneSKOS.analysis.SKOSLabelFilterTest.java
License:Apache License
@Before @Override/* w ww.ja va 2s. c om*/ public void setUp() throws Exception { super.setUp(); skosAnalyzer = new SKOSAnalyzer(matchVersion, skosEngine, ExpansionType.LABEL); writer = new IndexWriter(directory, new IndexWriterConfig(matchVersion, skosAnalyzer)); }
From source file:at.ac.univie.mminf.luceneSKOS.analysis.SKOSURIFilterTest.java
License:Apache License
@Before @Override/*from ww w . ja v a 2 s .c o m*/ public void setUp() throws Exception { super.setUp(); skosAnalyzer = new SKOSAnalyzer(matchVersion, skosEngine, ExpansionType.URI); writer = new IndexWriter(directory, new IndexWriterConfig(matchVersion, skosAnalyzer)); }
From source file:at.ac.univie.mminf.luceneSKOS.LabelbasedTermExpansionTest.java
License:Apache License
/** * This test indexes a sample metadata record (=lucene document) having a * "title", "description", and "subject" field. * //from w w w . j a v a 2s .c o m * A search for "arms" returns that record as a result because "arms" is * defined as an alternative label for "weapons", the term which is contained * in the subject field. * * @throws IOException */ @Test public void labelBasedTermExpansion() throws IOException { /* defining the document to be indexed */ Document doc = new Document(); doc.add(new Field("title", "Spearhead", Field.Store.YES, Field.Index.ANALYZED)); 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).", Field.Store.NO, Field.Index.ANALYZED)); doc.add(new Field("subject", "weapons", Field.Store.NO, Field.Index.ANALYZED)); /* setting up the SKOS analyzer */ String skosFile = "src/test/resources/skos_samples/ukat_examples.n3"; /* ExpansionType.URI->the field to be analyzed (expanded) contains URIs */ Analyzer skosAnalyzer = new SKOSAnalyzer(matchVersion, skosFile, ExpansionType.LABEL); /* Define different analyzers for different fields */ Map<String, Analyzer> analyzerPerField = new HashMap<String, Analyzer>(); analyzerPerField.put("subject", skosAnalyzer); PerFieldAnalyzerWrapper indexAnalyzer = new PerFieldAnalyzerWrapper(new SimpleAnalyzer(matchVersion), analyzerPerField); /* setting up a writer with a default (simple) analyzer */ writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(matchVersion, indexAnalyzer)); /* adding the document to the index */ writer.addDocument(doc); /* defining a query that searches over all fields */ BooleanQuery query1 = new BooleanQuery(); query1.add(new TermQuery(new Term("title", "arms")), BooleanClause.Occur.SHOULD); query1.add(new TermQuery(new Term("description", "arms")), BooleanClause.Occur.SHOULD); query1.add(new TermQuery(new Term("subject", "arms")), BooleanClause.Occur.SHOULD); /* creating a new searcher */ searcher = new IndexSearcher(IndexReader.open(writer, false)); TopDocs results = searcher.search(query1, 10); /* the document matches because "arms" is among the expanded terms */ Assert.assertEquals(1, results.totalHits); /* defining a query that searches for a broader concept */ Query query2 = new TermQuery(new Term("subject", "military equipment")); results = searcher.search(query2, 10); /* ... also returns the document as result */ Assert.assertEquals(1, results.totalHits); }
From source file:at.ac.univie.mminf.luceneSKOS.queryparser.flexible.standard.SKOSStandardQueryParserTest.java
License:Apache License
@Before public void setUp() throws Exception { // adding some test data skosEngine = new SKOSEngineMock(); skosEngine.addEntry("http://example.com/concept/1", SKOSType.PREF, "jumps"); skosEngine.addEntry("http://example.com/concept/1", SKOSType.ALT, "leaps", "hops"); skosEngine.addEntry("http://example.com/concept/2", SKOSType.PREF, "quick"); skosEngine.addEntry("http://example.com/concept/2", SKOSType.ALT, "fast", "speedy"); skosEngine.addEntry("http://example.com/concept/3", SKOSType.PREF, "over"); skosEngine.addEntry("http://example.com/concept/3", SKOSType.ALT, "above"); skosEngine.addEntry("http://example.com/concept/4", SKOSType.PREF, "lazy"); skosEngine.addEntry("http://example.com/concept/4", SKOSType.ALT, "apathic", "sluggish"); skosEngine.addEntry("http://example.com/concept/5", SKOSType.PREF, "dog"); skosEngine.addEntry("http://example.com/concept/5", SKOSType.ALT, "canine", "pooch"); skosEngine.addEntry("http://example.com/concept/6", SKOSType.PREF, "united nations"); skosEngine.addEntry("http://example.com/concept/6", SKOSType.ALT, "UN"); skosEngine.addEntry("http://example.com/concept/7", SKOSType.PREF, "lazy dog"); skosEngine.addEntry("http://example.com/concept/7", SKOSType.ALT, "Odie"); directory = new RAMDirectory(); skosAnalyzer = new SKOSAnalyzer(matchVersion, skosEngine, ExpansionType.LABEL); writer = new IndexWriter(directory, new IndexWriterConfig(matchVersion, skosAnalyzer)); }
From source file:at.ac.univie.mminf.luceneSKOS.skos.impl.SKOSEngineImpl.java
License:Apache License
/** * Creates the synonym index//from w w w . ja va 2 s . c o m * * @throws IOException */ private void indexSKOSModel() throws IOException { IndexWriterConfig cfg = new IndexWriterConfig(matchVersion, analyzer); IndexWriter writer = new IndexWriter(indexDir, cfg); writer.getConfig().setRAMBufferSizeMB(48); /* iterate SKOS concepts, create Lucene docs and add them to the index */ ResIterator concept_iter = skosModel.listResourcesWithProperty(RDF.type, SKOS.Concept); while (concept_iter.hasNext()) { Resource skos_concept = concept_iter.next(); Document concept_doc = createDocumentsFromConcept(skos_concept); // System.out.println("Adding document to index " + concept_doc); writer.addDocument(concept_doc); } writer.close(); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSLabelFilterTest.java
License:Apache License
@Before @Override//from w w w.j a v a 2 s . co m public void setUp() throws Exception { super.setUp(); skosAnalyzer = new SKOSAnalyzer(skosEngine, SKOSAnalyzer.ExpansionType.LABEL); writer = new IndexWriter(directory, new IndexWriterConfig(skosAnalyzer)); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSStandardQueryParserTest.java
License:Apache License
@Before public void setUp() throws Exception { // adding some test data skosEngine = new SKOSEngineMock(); skosEngine.addEntry("http://example.com/concept/1", SKOSType.PREF, "jumps"); skosEngine.addEntry("http://example.com/concept/1", SKOSType.ALT, "leaps", "hops"); skosEngine.addEntry("http://example.com/concept/2", SKOSType.PREF, "quick"); skosEngine.addEntry("http://example.com/concept/2", SKOSType.ALT, "fast", "speedy"); skosEngine.addEntry("http://example.com/concept/3", SKOSType.PREF, "over"); skosEngine.addEntry("http://example.com/concept/3", SKOSType.ALT, "above"); skosEngine.addEntry("http://example.com/concept/4", SKOSType.PREF, "lazy"); skosEngine.addEntry("http://example.com/concept/4", SKOSType.ALT, "apathic", "sluggish"); skosEngine.addEntry("http://example.com/concept/5", SKOSType.PREF, "dog"); skosEngine.addEntry("http://example.com/concept/5", SKOSType.ALT, "canine", "pooch"); skosEngine.addEntry("http://example.com/concept/6", SKOSType.PREF, "united nations"); skosEngine.addEntry("http://example.com/concept/6", SKOSType.ALT, "UN"); skosEngine.addEntry("http://example.com/concept/7", SKOSType.PREF, "lazy dog"); skosEngine.addEntry("http://example.com/concept/7", SKOSType.ALT, "Odie"); directory = new RAMDirectory(); skosAnalyzer = new SKOSAnalyzer(skosEngine, ExpansionType.LABEL); writer = new IndexWriter(directory, new IndexWriterConfig(skosAnalyzer)); }
From source file:at.ac.univie.mminf.luceneSKOS.test.SKOSURIFilterTest.java
License:Apache License
@Before @Override//from w w w.j a v a 2 s .co m public void setUp() throws Exception { super.setUp(); skosAnalyzer = new SKOSAnalyzer(skosEngine, ExpansionType.URI); writer = new IndexWriter(directory, new IndexWriterConfig(skosAnalyzer)); }
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.//from ww w .j av a2 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); }
From source file:at.ac.univie.mminf.luceneSKOS.test.termexpansion.LabelbasedTermExpansionTest.java
License:Apache License
/** * This test indexes a sample metadata record (=lucene document) having a * "title", "description", and "subject" field. * <p/>//from w w w . j a va2 s.c o m * A search for "arms" returns that record as a result because "arms" is * defined as an alternative label for "weapons", the term which is * contained in the subject field. * * @throws IOException */ @Test public void labelBasedTermExpansion() 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 the SKOS analyzer */ String skosFile = "src/test/resources/skos_samples/ukat_examples.n3"; String indexPath = "build/"; /* ExpansionType.URI->the field to be analyzed (expanded) contains URIs */ Analyzer skosAnalyzer = new SKOSAnalyzer(indexPath, skosFile, ExpansionType.LABEL); /* Define different analyzers for different fields */ Map<String, Analyzer> analyzerPerField = new HashMap<>(); analyzerPerField.put("subject", skosAnalyzer); PerFieldAnalyzerWrapper indexAnalyzer = new PerFieldAnalyzerWrapper(new SimpleAnalyzer(), analyzerPerField); /* setting up a writer with a default (simple) analyzer */ writer = new IndexWriter(new RAMDirectory(), new IndexWriterConfig(indexAnalyzer)); /* 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); /* the document matches because "arms" is among the expanded terms */ assertEquals(1, results.totalHits); /* defining a query that searches for a broader concept */ Query query = new TermQuery(new Term("subject", "military equipment")); results = searcher.search(query, 10); /* ... also returns the document as result */ assertEquals(1, results.totalHits); }