use of org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor in project neo4j by neo4j.
the class GraphDbStructureGuide method showIndices.
private void showIndices(DbStructureVisitor visitor, ReadOperations read, TokenNameLookup nameLookup) throws IndexNotFoundKernelException {
for (NewIndexDescriptor descriptor : loop(read.indexesGetAll())) {
String userDescription = descriptor.schema().userDescription(nameLookup);
double uniqueValuesPercentage = read.indexUniqueValuesSelectivity(descriptor);
long size = read.indexSize(descriptor);
visitor.visitIndex(descriptor, userDescription, uniqueValuesPercentage, size);
}
}
use of org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor in project neo4j by neo4j.
the class IndexingAcceptanceTest method shouldConsiderNodesChangedInSameTxInIndexPrefixSearch.
@Test
public void shouldConsiderNodesChangedInSameTxInIndexPrefixSearch() throws SchemaRuleNotFoundException, IndexNotFoundKernelException, IndexNotApplicableKernelException {
// GIVEN
GraphDatabaseService db = dbRule.getGraphDatabaseAPI();
IndexDefinition index = Neo4jMatchers.createIndex(db, LABEL1, "name");
createNodes(db, LABEL1, "name", "Mattias");
PrimitiveLongSet toChangeToMatch = createNodes(db, LABEL1, "name", "Mats");
PrimitiveLongSet toChangeToNotMatch = createNodes(db, LABEL1, "name", "Karlsson");
PrimitiveLongSet expected = createNodes(db, LABEL1, "name", "Karl");
String prefix = "Karl";
// WHEN
PrimitiveLongSet found = Primitive.longSet();
try (Transaction tx = db.beginTx()) {
PrimitiveLongIterator toMatching = toChangeToMatch.iterator();
while (toMatching.hasNext()) {
long id = toMatching.next();
db.getNodeById(id).setProperty("name", prefix + "X" + id);
expected.add(id);
}
PrimitiveLongIterator toNotMatching = toChangeToNotMatch.iterator();
while (toNotMatching.hasNext()) {
long id = toNotMatching.next();
db.getNodeById(id).setProperty("name", "X" + id);
expected.remove(id);
}
Statement statement = getStatement((GraphDatabaseAPI) db);
ReadOperations readOperations = statement.readOperations();
NewIndexDescriptor descriptor = indexDescriptor(readOperations, index);
int propertyKeyId = descriptor.schema().getPropertyId();
found.addAll(readOperations.indexQuery(descriptor, stringPrefix(propertyKeyId, prefix)));
}
// THEN
assertThat(found, equalTo(expected));
}
use of org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor in project neo4j by neo4j.
the class IndexingAcceptanceTest method shouldIncludeNodesCreatedInSameTxInIndexSeekByPrefix.
@Test
public void shouldIncludeNodesCreatedInSameTxInIndexSeekByPrefix() throws SchemaRuleNotFoundException, IndexNotFoundKernelException, IndexNotApplicableKernelException {
// GIVEN
GraphDatabaseService db = dbRule.getGraphDatabaseAPI();
IndexDefinition index = Neo4jMatchers.createIndex(db, LABEL1, "name");
createNodes(db, LABEL1, "name", "Mattias", "Mats");
PrimitiveLongSet expected = createNodes(db, LABEL1, "name", "Carl", "Carlsson");
// WHEN
PrimitiveLongSet found = Primitive.longSet();
try (Transaction tx = db.beginTx()) {
expected.add(createNode(db, map("name", "Carlchen"), LABEL1).getId());
createNode(db, map("name", "Karla"), LABEL1);
Statement statement = getStatement((GraphDatabaseAPI) db);
ReadOperations readOperations = statement.readOperations();
NewIndexDescriptor descriptor = indexDescriptor(readOperations, index);
int propertyKeyId = descriptor.schema().getPropertyId();
found.addAll(readOperations.indexQuery(descriptor, stringPrefix(propertyKeyId, "Carl")));
}
// THEN
assertThat(found, equalTo(expected));
}
use of org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor in project neo4j by neo4j.
the class GraphDbStructureGuideTest method visitsUniqueConstraintsAndIndices.
@Test
public void visitsUniqueConstraintsAndIndices() throws Exception {
DbStructureVisitor visitor = mock(DbStructureVisitor.class);
int labelId = createLabel("Person");
int pkId = createPropertyKey("name");
commitAndReOpen();
UniquenessConstraint constraint = createUniqueConstraint(labelId, pkId);
NewIndexDescriptor descriptor = NewIndexDescriptorFactory.uniqueForLabel(labelId, pkId);
// WHEN
accept(visitor);
// THEN
verify(visitor).visitUniqueIndex(descriptor, ":Person(name)", 1.0d, 0L);
verify(visitor).visitUniqueConstraint(constraint, "CONSTRAINT ON ( person:Person ) ASSERT person.name IS " + "UNIQUE");
}
use of org.neo4j.kernel.api.schema_new.index.NewIndexDescriptor in project neo4j by neo4j.
the class LuceneSchemaIndexCorruptionTest method shouldRequestIndexPopulationWhenFailingWithEOFException.
@Test
public void shouldRequestIndexPopulationWhenFailingWithEOFException() throws Exception {
// Given
long faultyIndexId = 1;
EOFException error = new EOFException("/some/path/somewhere");
LuceneSchemaIndexProvider provider = newFaultySchemaIndexProvider(faultyIndexId, error);
// When
NewIndexDescriptor descriptor = NewIndexDescriptorFactory.forLabel(1, 1);
InternalIndexState initialState = provider.getInitialState(faultyIndexId, descriptor);
// Then
assertThat(initialState, equalTo(InternalIndexState.POPULATING));
logProvider.assertAtLeastOnce(loggedException(error));
}
Aggregations