Search in sources :

Example 31 with IndexProviderDescriptor

use of org.neo4j.internal.schema.IndexProviderDescriptor in project neo4j by neo4j.

the class Operations method indexCreate.

@Override
public IndexDescriptor indexCreate(SchemaDescriptor schema, String provider, IndexConfig indexConfig, String name) throws KernelException {
    IndexProviderDescriptor providerDescriptor = indexProviders.indexProviderByName(provider);
    IndexPrototype prototype = IndexPrototype.forSchema(schema, providerDescriptor).withName(name).withIndexConfig(indexConfig);
    return indexCreate(prototype);
}
Also used : IndexProviderDescriptor(org.neo4j.internal.schema.IndexProviderDescriptor) IndexPrototype(org.neo4j.internal.schema.IndexPrototype)

Example 32 with IndexProviderDescriptor

use of org.neo4j.internal.schema.IndexProviderDescriptor in project neo4j by neo4j.

the class IndexConfigMigrator method migrateIndexConfig.

public static SchemaRule migrateIndexConfig(SchemaRule rule, DatabaseLayout directoryLayout, FileSystemAbstraction fs, PageCache pageCache, IndexProviderMap indexProviderMap, Log log, CursorContext cursorContext) throws IOException {
    if (rule instanceof IndexDescriptor) {
        IndexDescriptor old = (IndexDescriptor) rule;
        long indexId = old.getId();
        IndexProviderDescriptor provider = old.getIndexProvider();
        IndexMigration indexMigration = IndexMigration.migrationFromOldProvider(provider.getKey(), provider.getVersion());
        IndexConfig indexConfig = indexMigration.extractIndexConfig(fs, pageCache, directoryLayout, indexId, cursorContext, log);
        IndexDescriptor newIndexReference = old.withIndexConfig(indexConfig);
        IndexProvider indexProvider = indexProviderMap.lookup(indexMigration.desiredAlternativeProvider);
        return indexProvider.completeConfiguration(newIndexReference);
    }
    return rule;
}
Also used : IndexProvider(org.neo4j.kernel.api.index.IndexProvider) IndexConfig(org.neo4j.internal.schema.IndexConfig) IndexProviderDescriptor(org.neo4j.internal.schema.IndexProviderDescriptor) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor)

Example 33 with IndexProviderDescriptor

use of org.neo4j.internal.schema.IndexProviderDescriptor in project neo4j by neo4j.

the class IndexProviderMigrator method upgradeIndexProvider.

public static SchemaRule upgradeIndexProvider(SchemaRule rule) {
    if (rule instanceof IndexDescriptor) {
        IndexDescriptor old = (IndexDescriptor) rule;
        IndexProviderDescriptor provider = old.getIndexProvider();
        String currentKey = provider.getKey();
        String currentVersion = provider.getVersion();
        for (IndexMigration retired : IndexMigration.retired()) {
            if (currentKey.equals(retired.providerKey) && currentVersion.equals(retired.providerVersion)) {
                IndexProviderDescriptor replacement = retired.desiredAlternativeProvider;
                return old.withIndexProvider(replacement);
            }
        }
    }
    return rule;
}
Also used : IndexProviderDescriptor(org.neo4j.internal.schema.IndexProviderDescriptor) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor)

Example 34 with IndexProviderDescriptor

use of org.neo4j.internal.schema.IndexProviderDescriptor in project neo4j by neo4j.

the class LuceneFulltextIndexTest method completeConfigurationMustBeIdempotent.

@Test
void completeConfigurationMustBeIdempotent() {
    FulltextSchemaDescriptor schema = SchemaDescriptor.fulltext(NODE, new int[] { 1 }, new int[] { 1 });
    IndexProviderDescriptor providerDescriptor = indexProvider.getProviderDescriptor();
    IndexDescriptor onceCompleted = indexProvider.completeConfiguration(IndexPrototype.forSchema(schema, providerDescriptor).withName("index_1").materialise(1));
    IndexDescriptor twiceCompleted = indexProvider.completeConfiguration(onceCompleted);
    assertEquals(onceCompleted.getIndexConfig(), twiceCompleted.getIndexConfig());
}
Also used : IndexProviderDescriptor(org.neo4j.internal.schema.IndexProviderDescriptor) FulltextSchemaDescriptor(org.neo4j.internal.schema.FulltextSchemaDescriptor) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) Test(org.junit.jupiter.api.Test)

Example 35 with IndexProviderDescriptor

use of org.neo4j.internal.schema.IndexProviderDescriptor in project neo4j by neo4j.

the class LuceneFulltextIndexTest method mustAssignCapabilitiesToDescriptorsThatHaveNone.

@Test
void mustAssignCapabilitiesToDescriptorsThatHaveNone() {
    FulltextSchemaDescriptor schema = SchemaDescriptor.fulltext(NODE, new int[] { 1 }, new int[] { 1 });
    IndexProviderDescriptor providerDescriptor = indexProvider.getProviderDescriptor();
    IndexDescriptor completed = indexProvider.completeConfiguration(IndexPrototype.forSchema(schema, providerDescriptor).withName("index_1").materialise(1));
    assertNotEquals(NO_CAPABILITY, completed.getCapability());
    completed = completed.withIndexCapability(NO_CAPABILITY);
    completed = indexProvider.completeConfiguration(completed);
    assertNotEquals(NO_CAPABILITY, completed.getCapability());
}
Also used : IndexProviderDescriptor(org.neo4j.internal.schema.IndexProviderDescriptor) FulltextSchemaDescriptor(org.neo4j.internal.schema.FulltextSchemaDescriptor) IndexDescriptor(org.neo4j.internal.schema.IndexDescriptor) Test(org.junit.jupiter.api.Test)

Aggregations

IndexProviderDescriptor (org.neo4j.internal.schema.IndexProviderDescriptor)41 IndexDescriptor (org.neo4j.internal.schema.IndexDescriptor)18 Test (org.junit.jupiter.api.Test)16 IndexProvider (org.neo4j.kernel.api.index.IndexProvider)11 IndexPrototype (org.neo4j.internal.schema.IndexPrototype)10 ArrayList (java.util.ArrayList)5 FulltextSchemaDescriptor (org.neo4j.internal.schema.FulltextSchemaDescriptor)5 IndexDirectoryStructure (org.neo4j.kernel.api.index.IndexDirectoryStructure)5 IndexConfig (org.neo4j.internal.schema.IndexConfig)4 LabelSchemaDescriptor (org.neo4j.internal.schema.LabelSchemaDescriptor)4 Path (java.nio.file.Path)3 BeforeEach (org.junit.jupiter.api.BeforeEach)3 IndexPopulator (org.neo4j.kernel.api.index.IndexPopulator)3 IOException (java.io.IOException)2 UncheckedIOException (java.io.UncheckedIOException)2 String.format (java.lang.String.format)2 Arrays (java.util.Arrays)2 Collection (java.util.Collection)2 EnumMap (java.util.EnumMap)2 HashMap (java.util.HashMap)2