use of org.eol.globi.db.GraphServiceFactoryProxy in project eol-globi-data by jhpoelen.
the class LinkerTaxonIndexTest method linking.
@Test
public void linking() throws NodeFactoryException {
Taxon taxonFound = new TaxonImpl("Homo sapiens", "Bar:123");
taxonFound.setPath("Animalia | Mammalia | Homo sapiens");
Taxon taxon = taxonIndex.getOrCreateTaxon(taxonFound);
TaxonImpl taxon1 = new TaxonImpl("Homo sapiens also", "FOO:444");
taxon1.setPathIds("BARZ:111 | FOOZ:777");
TaxonImpl taxon2 = new TaxonImpl("Homo sapiens also2", "FOO:444");
taxon1.setPathIds("BARZ:111 | FOOZ:777");
NodeUtil.connectTaxa(taxon1, (TaxonNode) taxon, getGraphDb(), RelTypes.SAME_AS);
NodeUtil.connectTaxa(taxon2, (TaxonNode) taxon, getGraphDb(), RelTypes.SAME_AS);
taxon = taxonIndex.getOrCreateTaxon(new TaxonImpl("Bla blaus", null));
taxon.setExternalId("FOO 1234");
resolveNames();
new LinkerTaxonIndex(new GraphServiceFactoryProxy(getGraphDb())).index();
IndexHits<Node> hits = getGraphDb().index().forNodes(LinkerTaxonIndex.INDEX_TAXON_NAMES_AND_IDS).query("*:*");
Node next = hits.next();
assertThat(new TaxonNode(next).getName(), is("Homo sapiens"));
assertThat(hits.hasNext(), is(true));
hits.close();
assertSingleHit(PropertyAndValueDictionary.PATH + ":BAR\\:123");
assertSingleHit(PropertyAndValueDictionary.PATH + ":FOO\\:444");
assertSingleHit(PropertyAndValueDictionary.PATH + ":FOO\\:444 " + PropertyAndValueDictionary.PATH + ":BAR\\:123");
assertSingleHit(PropertyAndValueDictionary.PATH + ":BAR\\:*");
assertSingleHit(PropertyAndValueDictionary.PATH + ":Homo");
assertSingleHit(PropertyAndValueDictionary.PATH + ":\"Homo sapiens\"");
Taxon node = taxonIndex.findTaxonByName("Homo sapiens");
assertThat(((NodeBacked) node).getUnderlyingNode().getProperty(PropertyAndValueDictionary.EXTERNAL_IDS).toString(), is("Animalia | BARZ:111 | Bar:123 | FOO:444 | FOOZ:777 | Homo sapiens | Homo sapiens also | Homo sapiens also2 | Mammalia"));
assertThat(((NodeBacked) node).getUnderlyingNode().getProperty(PropertyAndValueDictionary.NAME_IDS).toString(), is("Bar:123 | FOO:444"));
assertThat(new TaxonFuzzySearchIndex(getGraphDb()).query("name:sapienz~").size(), is(1));
assertThat(new TaxonFuzzySearchIndex(getGraphDb()).query("name:sapienz").size(), is(0));
}
Aggregations