public IndexHits<Node> getNodes(String key, Object value) { IndexHits<Long> ids = LuceneIndexBatchInserterImpl.this.getNodes(key, value); Iterable<Node> nodes = new IterableWrapper<Node, Long>(ids) { @Override protected Node underlyingObjectToObject(Long id) { return inserter.getGraphDbService().getNodeById(id); } }; return new SimpleIndexHits<Node>(nodes, ids.size()); }
@Test public void testSimpleIndexBasic() { Node node1 = graphDb().createNode(); Object key1 = 1; assertTrue(!index.getNodesFor(key1).iterator().hasNext()); index.index(node1, key1); IndexHits hits = index.getNodesFor(key1); Iterator<Node> itr = hits.iterator(); assertEquals(node1, itr.next()); assertEquals(1, hits.size()); assertTrue(!itr.hasNext()); index.remove(node1, key1); assertTrue(!index.getNodesFor(key1).iterator().hasNext()); index.index(node1, key1); Node node2 = graphDb().createNode(); Object key2 = 2; index.index(node2, key2); itr = index.getNodesFor(key1).iterator(); assertEquals(node1, itr.next()); assertTrue(!itr.hasNext()); itr = index.getNodesFor(key2).iterator(); assertEquals(node2, itr.next()); assertTrue(!itr.hasNext()); index.remove(node1, key1); index.remove(node2, key2); assertTrue(!index.getNodesFor(key1).iterator().hasNext()); assertTrue(!index.getNodesFor(key2).iterator().hasNext()); node1.delete(); node2.delete(); }
@Test public void testSimple() { Node node1 = graphDb().createNode(); assertTrue(!index().getNodes("a_property", 1).iterator().hasNext()); index().index(node1, "a_property", 1); Iterator<Node> itr = index().getNodes("a_property", 1).iterator(); assertEquals(node1, itr.next()); assertTrue(!itr.hasNext()); index().removeIndex(node1, "a_property", 1); assertTrue(!index().getNodes("a_property", 1).iterator().hasNext()); index().index(node1, "a_property", 1); Node node2 = graphDb().createNode(); index().index(node2, "a_property", 1); IndexHits<Node> hits = index().getNodes("a_property", 1); assertEquals(2, hits.size()); itr = hits.iterator(); assertTrue(itr.next() != null); assertTrue(itr.next() != null); assertTrue(!itr.hasNext()); assertTrue(!itr.hasNext()); index().removeIndex(node1, "a_property", 1); index().removeIndex(node2, "a_property", 1); assertTrue(!index().getNodes("a_property", 1).iterator().hasNext()); itr = index().getNodes("a_property", 1).iterator(); assertTrue(!itr.hasNext()); restartTx(); node1.delete(); node2.delete(); }