diff --git a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/FulltextFactory.java b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/FulltextFactory.java index 98d5bccf0a34c..c24f25c95cf0a 100644 --- a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/FulltextFactory.java +++ b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/FulltextFactory.java @@ -27,30 +27,27 @@ import java.nio.file.Paths; import org.neo4j.function.Factory; -import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.io.fs.FileSystemAbstraction; import org.neo4j.kernel.api.impl.index.IndexWriterConfigs; import org.neo4j.kernel.api.impl.index.builder.LuceneIndexStorageBuilder; import org.neo4j.kernel.api.impl.index.partition.WritableIndexPartitionFactory; -import org.neo4j.kernel.configuration.Config; import static org.neo4j.kernel.api.impl.index.LuceneKernelExtensions.directoryFactory; public class FulltextFactory { private final FileSystemAbstraction fileSystem; - private final String[] properties; private final WritableIndexPartitionFactory partitionFactory; private final Factory population; private final File storeDir; private final Analyzer analyzer; - public LuceneFulltext createFulltextHelper( String identifier, FULLTEXT_HELPER_TYPE type ) + public LuceneFulltext createFulltextHelper( String identifier, FULLTEXT_HELPER_TYPE type, String[] properties ) { LuceneIndexStorageBuilder storageBuilder = LuceneIndexStorageBuilder.create(); storageBuilder.withFileSystem( fileSystem ).withIndexIdentifier( identifier ).withDirectoryFactory( directoryFactory( false, this.fileSystem ) ).withIndexRootFolder( Paths.get( this.storeDir.getAbsolutePath(), "fulltextHelper" ).toFile() ); - return new LuceneFulltext( storageBuilder.build(), partitionFactory, this.properties, analyzer, identifier, type ); + return new LuceneFulltext( storageBuilder.build(), partitionFactory, properties, analyzer, identifier, type ); } public enum FULLTEXT_HELPER_TYPE @@ -59,19 +56,10 @@ public enum FULLTEXT_HELPER_TYPE RELATIONSHIPS } - public FulltextFactory( FileSystemAbstraction fileSystem, File storeDir, Config config ) throws IOException + public FulltextFactory( FileSystemAbstraction fileSystem, File storeDir, Analyzer analyzer ) throws IOException { + this.analyzer = analyzer; this.fileSystem = fileSystem; - this.properties = config.get( GraphDatabaseSettings.bloom_indexed_properties ).toArray( new String[0] ); - try - { - Class configuredAnalayzer = Class.forName( config.get( GraphDatabaseSettings.bloom_analyzer ) ); - analyzer = (Analyzer) configuredAnalayzer.newInstance(); - } - catch ( Exception e ) - { - throw new RuntimeException( "Could not create the configured analyzer", e ); - } population = () -> IndexWriterConfigs.population( analyzer ); partitionFactory = new WritableIndexPartitionFactory( population ); this.storeDir = storeDir; diff --git a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomKernelExtension.java b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomKernelExtension.java index 690339aa59000..84ecf0e00c192 100644 --- a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomKernelExtension.java +++ b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomKernelExtension.java @@ -19,6 +19,8 @@ */ package org.neo4j.kernel.api.impl.fulltext.integrations.bloom; +import org.apache.lucene.analysis.Analyzer; + import java.io.File; import java.io.IOException; @@ -53,11 +55,23 @@ public BloomKernelExtension( FileSystemAbstraction fileSystemAbstraction, File s @Override public void init() throws IOException, ProcedureException { + String[] properties = config.get( LoadableBloomFulltextConfig.bloom_indexed_properties ).toArray( new String[0] ); + Analyzer analyzer; + try + { + Class configuredAnalayzer = Class.forName( config.get( LoadableBloomFulltextConfig.bloom_analyzer ) ); + analyzer = (Analyzer) configuredAnalayzer.newInstance(); + } + catch ( Exception e ) + { + throw new RuntimeException( "Could not create the configured analyzer", e ); + } + FulltextProvider provider = FulltextProvider.instance( db ); - fulltextFactory = new FulltextFactory( fileSystemAbstraction, storeDir, config ); - LuceneFulltext nodes = fulltextFactory.createFulltextHelper( "bloomNodes", FulltextFactory.FULLTEXT_HELPER_TYPE.NODES ); + fulltextFactory = new FulltextFactory( fileSystemAbstraction, storeDir, analyzer ); + LuceneFulltext nodes = fulltextFactory.createFulltextHelper( "bloomNodes", FulltextFactory.FULLTEXT_HELPER_TYPE.NODES, properties ); LuceneFulltext relationships = - fulltextFactory.createFulltextHelper( "bloomRelationships", FulltextFactory.FULLTEXT_HELPER_TYPE.RELATIONSHIPS ); + fulltextFactory.createFulltextHelper( "bloomRelationships", FulltextFactory.FULLTEXT_HELPER_TYPE.RELATIONSHIPS, properties ); provider.register( nodes ); provider.register( relationships ); diff --git a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomProcedure.java b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomProcedure.java index e896f273fe1a4..5d89143ac2407 100644 --- a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomProcedure.java +++ b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomProcedure.java @@ -37,15 +37,15 @@ public class BloomProcedure extends CallableProcedure.BasicProcedure { private static final String PROCEDURE_NAME = "bloomFulltext"; - - private static final String[] PROCEDURE_NAMESPACE = {"dbms", "fulltext"}; + private static final String[] PROCEDURE_NAMESPACE = {"db", "fulltext"}; + public static final String OUTPUT_NAME = "entityid"; private final LuceneFulltext luceneFulltext; private String type; BloomProcedure( String type, LuceneFulltext luceneFulltext ) { super( procedureSignature( new QualifiedName( PROCEDURE_NAMESPACE, PROCEDURE_NAME + type ) ).in( "terms", - Neo4jTypes.NTList( Neo4jTypes.NTString ) ).out( "entityid", Neo4jTypes.NTInteger ).description( + Neo4jTypes.NTList( Neo4jTypes.NTString ) ).out( OUTPUT_NAME, Neo4jTypes.NTInteger ).description( String.format( "Queries the bloom index for %s.", type ) ).build() ); this.luceneFulltext = luceneFulltext; this.type = type; diff --git a/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/LoadableBloomFulltextConfig.java b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/LoadableBloomFulltextConfig.java new file mode 100644 index 0000000000000..71499ff909e69 --- /dev/null +++ b/enterprise/fulltext-addon/src/main/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/LoadableBloomFulltextConfig.java @@ -0,0 +1,27 @@ +package org.neo4j.kernel.api.impl.fulltext.integrations.bloom; + +import java.util.List; + +import org.neo4j.configuration.Description; +import org.neo4j.configuration.Internal; +import org.neo4j.configuration.LoadableConfig; +import org.neo4j.graphdb.config.Setting; + +import static org.neo4j.kernel.configuration.Settings.NO_DEFAULT; +import static org.neo4j.kernel.configuration.Settings.STRING; +import static org.neo4j.kernel.configuration.Settings.STRING_LIST; +import static org.neo4j.kernel.configuration.Settings.setting; + +public class LoadableBloomFulltextConfig implements LoadableConfig +{ + + // Bloom index + @Internal + public static final Setting> bloom_indexed_properties = setting( "unsupported.dbms.bloom_indexed_properties", STRING_LIST, NO_DEFAULT ); + + @Description( "Define the analyzer to use for the bloom index. Expects the fully qualified classname of the analyzer to use" ) + @Internal + public static final Setting bloom_analyzer = + setting( "unsupported.dbms.bloom_analyzer", STRING, "org.apache.lucene.analysis.standard.StandardAnalyzer" ); + +} diff --git a/enterprise/fulltext-addon/src/main/resources/META-INF/services/org.neo4j.configuration.LoadableConfig b/enterprise/fulltext-addon/src/main/resources/META-INF/services/org.neo4j.configuration.LoadableConfig new file mode 100644 index 0000000000000..387fe85e5ccc4 --- /dev/null +++ b/enterprise/fulltext-addon/src/main/resources/META-INF/services/org.neo4j.configuration.LoadableConfig @@ -0,0 +1 @@ +org.neo4j.kernel.api.impl.fulltext.integrations.bloom.LoadableBloomFulltextConfig \ No newline at end of file diff --git a/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/LuceneFulltextUpdaterTest.java b/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/LuceneFulltextUpdaterTest.java index 29730aeefe380..fce606c2cd421 100644 --- a/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/LuceneFulltextUpdaterTest.java +++ b/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/LuceneFulltextUpdaterTest.java @@ -19,6 +19,7 @@ */ package org.neo4j.kernel.api.impl.fulltext; +import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.junit.ClassRule; import org.junit.Rule; import org.junit.Test; @@ -29,8 +30,6 @@ import org.neo4j.graphdb.Relationship; import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.Transaction; -import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.kernel.configuration.Config; import org.neo4j.kernel.internal.GraphDatabaseAPI; import org.neo4j.test.rule.DatabaseRule; import org.neo4j.test.rule.EmbeddedDatabaseRule; @@ -44,6 +43,7 @@ public class LuceneFulltextUpdaterTest { + public static final StandardAnalyzer ANALYZER = new StandardAnalyzer(); @ClassRule public static FileSystemRule fileSystemRule = new DefaultFileSystemRule(); @ClassRule @@ -57,13 +57,11 @@ public class LuceneFulltextUpdaterTest @Test public void shouldFindNodeWithString() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; long secondID; @@ -94,13 +92,11 @@ public void shouldFindNodeWithString() throws Exception @Test public void shouldFindNodeWithNumber() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; @@ -132,13 +128,11 @@ public void shouldFindNodeWithNumber() throws Exception @Test public void shouldFindNodeWithBoolean() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; long secondID; @@ -169,13 +163,11 @@ public void shouldFindNodeWithBoolean() throws Exception @Test public void shouldFindNodeWithArrays() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; long secondID; @@ -206,13 +198,11 @@ public void shouldFindNodeWithArrays() throws Exception @Test public void shouldRepresentPropertyChanges() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; long secondID; @@ -257,13 +247,11 @@ public void shouldRepresentPropertyChanges() throws Exception @Test public void shouldNotFindRemovedNodes() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; long secondID; @@ -302,13 +290,11 @@ public void shouldNotFindRemovedNodes() throws Exception @Test public void shouldNotFindRemovedProperties() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop, prop2" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop, prop2" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop", "prop2"} ) ); long firstID; long secondID; @@ -367,13 +353,11 @@ public void shouldNotFindRemovedProperties() throws Exception @Test public void shouldOnlyIndexIndexedProperties() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); long firstID; try ( Transaction tx = db.beginTx() ) @@ -403,13 +387,11 @@ public void shouldOnlyIndexIndexedProperties() throws Exception @Test public void shouldSearchAcrossMultipleProperties() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop, prop2" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop, prop2" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop", "prop2"} ) ); long firstID; long secondID; @@ -445,13 +427,11 @@ public void shouldSearchAcrossMultipleProperties() throws Exception @Test public void shouldOrderResultsBasedOnRelevance() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "first, last" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "first, last" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"first", "last"} ) ); long firstID; long secondID; @@ -494,14 +474,12 @@ public void shouldOrderResultsBasedOnRelevance() throws Exception @Test public void shouldDifferentiateNodesAndRelationships() throws Exception { - GraphDatabaseAPI db = dbRule.withSetting( GraphDatabaseSettings.bloom_indexed_properties, "prop" ).getGraphDatabaseAPI(); - Config config = db.getDependencyResolver().resolveDependency( Config.class ); - config.augment( GraphDatabaseSettings.bloom_indexed_properties, "prop" ); - FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), config ); + GraphDatabaseAPI db = dbRule.getGraphDatabaseAPI(); + FulltextFactory fulltextFactory = new FulltextFactory( fileSystemRule, testDirectory.graphDbDir(), ANALYZER ); try ( FulltextProvider provider = FulltextProvider.instance( db ) ) { - provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES ) ); - provider.register( fulltextFactory.createFulltextHelper( "bloomRelationships", FULLTEXT_HELPER_TYPE.RELATIONSHIPS ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomNodes", FULLTEXT_HELPER_TYPE.NODES, new String[]{"prop"} ) ); + provider.register( fulltextFactory.createFulltextHelper( "bloomRelationships", FULLTEXT_HELPER_TYPE.RELATIONSHIPS, new String[]{"prop"} ) ); long firstNodeID; long secondNodeID; diff --git a/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomIT.java b/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomIT.java index 64169f4981af0..b5454c46f1ef8 100644 --- a/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomIT.java +++ b/enterprise/fulltext-addon/src/test/java/org/neo4j/kernel/api/impl/fulltext/integrations/bloom/BloomIT.java @@ -32,10 +32,9 @@ import org.neo4j.graphdb.RelationshipType; import org.neo4j.graphdb.Result; import org.neo4j.graphdb.Transaction; -import org.neo4j.graphdb.factory.GraphDatabaseSettings; import org.neo4j.test.TestGraphDatabaseFactory; +import org.neo4j.test.rule.TestDirectory; import org.neo4j.test.rule.fs.DefaultFileSystemRule; -import org.neo4j.test.rule.fs.EphemeralFileSystemRule; import org.neo4j.test.rule.fs.FileSystemRule; import static org.junit.Assert.assertEquals; @@ -43,11 +42,13 @@ public class BloomIT { - public static final String NODES = "CALL dbms.fulltext.bloomFulltextNodes([\"%s\"])"; - public static final String RELS = "CALL dbms.fulltext.bloomFulltextRelationships([\"%s\"])"; + public static final String NODES = "CALL db.fulltext.bloomFulltextNodes([\"%s\"])"; + public static final String RELS = "CALL db.fulltext.bloomFulltextRelationships([\"%s\"])"; public static final String ENTITYID = "entityid"; @Rule public final FileSystemRule fs = new DefaultFileSystemRule(); + @Rule + public final TestDirectory testDirectory = TestDirectory.testDirectory(); private TestGraphDatabaseFactory factory; private GraphDatabaseService db; @@ -58,7 +59,8 @@ public void before() throws Exception factory = new TestGraphDatabaseFactory(); factory.setFileSystem( fs.get() ); factory.addKernelExtensions( Collections.singletonList( new BloomKernelExtensionFactory() ) ); - db = factory.newImpermanentDatabase( Collections.singletonMap( GraphDatabaseSettings.bloom_indexed_properties, "prop, relprop" ) ); + db = factory.newImpermanentDatabase( testDirectory.graphDbDir(), + Collections.singletonMap( LoadableBloomFulltextConfig.bloom_indexed_properties, "prop, relprop" ) ); } @Test