List of usage examples for org.apache.lucene.store RAMDirectory RAMDirectory
public RAMDirectory()
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
/** * This constructor loads the SKOS model from a given InputStream using the * given serialization language parameter, which must be either N3, RDF/XML, * or TURTLE./*w w w . j a v a 2s . c o m*/ * * @param inputStream * the input stream * @param lang * the serialization language * @throws IOException * if the model cannot be loaded */ public SKOSEngineImpl(final Version version, InputStream inputStream, String lang) throws IOException { if (!("N3".equals(lang) || "RDF/XML".equals(lang) || "TURTLE".equals(lang))) { throw new IOException("Invalid RDF serialization format"); } matchVersion = version; analyzer = new SimpleAnalyzer(matchVersion); skosModel = ModelFactory.createDefaultModel(); skosModel.read(inputStream, null, lang); indexDir = new RAMDirectory(); entailSKOSModel(); indexSKOSModel(); searcher = new IndexSearcher(IndexReader.open(indexDir)); }
From source file:at.ac.univie.mminf.luceneSKOS.test.AbstractFilterTest.java
License:Apache License
@Before protected 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"); this.directory = new RAMDirectory(); }
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.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 a 2 s . com*/ * <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 ww . ja v a 2 s . com * 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); }
From source file:at.ac.univie.mminf.luceneSKOS.test.termexpansion.URIbasedTermExpansionTest.java
License:Apache License
/** * This test indexes a sample metadata record (=lucene document) having a * "title", "description", and "subject" field, which is semantically * enriched by a URI pointing to a SKOS concept "weapons". * <p/>//from w w w . j a v a2 s. co m * A search for "arms" returns that record as a result because "arms" is * defined as an alternative label (altLabel) for the concept "weapons". * * @throws IOException */ @Test public void uriBasedTermExpansion() 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", "http://www.ukat.org.uk/thesaurus/concept/859", 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.URI); /* 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); }
From source file:at.ac.univie.mminf.luceneSKOS.URIbasedTermExpansionTest.java
License:Apache License
/** * This test indexes a sample metadata record (=lucene document) having a * "title", "description", and "subject" field, which is semantically enriched * by a URI pointing to a SKOS concept "weapons". * /*from w ww . j a v a2 s . co m*/ * A search for "arms" returns that record as a result because "arms" is * defined as an alternative label (altLabel) for the concept "weapons". * * @throws IOException */ @Test public void uriBasedTermExpansion() 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", "http://www.ukat.org.uk/thesaurus/concept/859", 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.URI); /* 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:au.edu.unimelb.csse.analyser.NodeCacheTest.java
License:Apache License
public void testReusesNodesWhileIndexing() throws Exception { String[] sents = new String[] { "(A(B C)(D(E F)))", "(A(B(C D)))", "(A(B C)(D(E(F(G H)))))", "(A(B C))" }; String[] jsonSents = new String[sents.length]; String2NodesParser parser = new String2NodesParser(); assertEquals(0, NodeCache.cacheSize()); int[] expectedCounts = new int[] { 0, 2, 0, 5 }; //First sent: 6 nodes are used but they are not returned until the next sentence is read. //Hence the cache still returns a size of 0 //Second sent: 6 nodes are returned back but the new sentence contains 4 nodes //6 - 4 = 2/* w w w . j a va2 s.com*/ //Third sent: 4 nodes are returned back but the new sentence contains 8 nodes //size shows 0 again //Fourth sent: 8 nodes are returned back but the new sentence contains 3 nodes //8 - 3 = 5 for (int i = 0; i < sents.length; i++) { jsonSents[i] = parser.parse(sents[i]).asJSONString(); assertEquals(expectedCounts[i], NodeCache.cacheSize()); } Analyzer analyser = new NodeTreebankAnalyser(false); RAMDirectory dir = new RAMDirectory(); IndexWriter writer = new IndexWriter(dir, analyser, true, IndexWriter.MaxFieldLength.UNLIMITED); Document d = new Document(); d.add(new Field("sent", jsonSents[0], Field.Store.NO, Field.Index.ANALYZED_NO_NORMS, Field.TermVector.WITH_POSITIONS)); writer.addDocument(d); //No change to Node cache assertEquals(5, NodeCache.cacheSize()); d = new Document(); d.add(new Field("sent", jsonSents[1], Field.Store.NO, Field.Index.ANALYZED_NO_NORMS, Field.TermVector.WITH_POSITIONS)); writer.addDocument(d); //No change to Node cache assertEquals(5, NodeCache.cacheSize()); d = new Document(); d.add(new Field("sent", jsonSents[2], Field.Store.NO, Field.Index.ANALYZED_NO_NORMS, Field.TermVector.WITH_POSITIONS)); writer.addDocument(d); //No change to Node cache assertEquals(5, NodeCache.cacheSize()); d = new Document(); d.add(new Field("sent", jsonSents[3], Field.Store.NO, Field.Index.ANALYZED_NO_NORMS, Field.TermVector.WITH_POSITIONS)); writer.addDocument(d); //No change to Node cache assertEquals(5, NodeCache.cacheSize()); }
From source file:au.edu.unimelb.csse.join.JoinFunctionalTest.java
License:Apache License
/** * This test is actually commented out.. to run the test.. match counting has to be enabled in JoinLogic * @throws Exception//from w ww . j a v a 2 s .com */ public void testNumberOfCallsToMatch() throws Exception { String sent = "(NP" + "(NP" + "(DT The)" + "(NN year))" + "(NP" + "(NP(CD 1956))" + "(PP" + "(IN in)" + "(NP(JJ rugby)(NN union))" + ")" + ")" + "(. .)" + ")"; Analyzer analyser = new FastStringAnalyser(); RAMDirectory dir = new RAMDirectory(); IndexWriter writer = new IndexWriter(dir, analyser, true, IndexWriter.MaxFieldLength.UNLIMITED); Document d = new Document(); d.add(new Field("sent", sent, Field.Store.NO, Field.Index.ANALYZED_NO_NORMS, Field.TermVector.WITH_POSITIONS)); writer.addDocument(d); writer.close(); IndexSearcher searcher = new IndexSearcher(dir); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.SIMPLE, false, 6); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.SIMPLE_WITH_FC, false, 1); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.EARLY_STOP, false, 2); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.EARLY_STOP_WITH_FC, false, 1); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.SIMPLE, true, 6); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.SIMPLE_WITH_FC, true, 5); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.EARLY_STOP, true, 6); assertNumberOfComparisons(searcher, "//NP//NP", TermJoinType.EARLY_STOP_WITH_FC, true, 5); assertNumberOfComparisons(searcher, "//NP//NP//NP", TermJoinType.SIMPLE, false, 23); assertNumberOfComparisons(searcher, "//NP//NP//NP", TermJoinType.SIMPLE_WITH_FC, false, 10); assertNumberOfComparisons(searcher, "//NP//NP//NP", TermJoinType.EARLY_STOP, false, 10); assertNumberOfComparisons(searcher, "//NP//NP//NP", TermJoinType.EARLY_STOP_WITH_FC, false, 8); }