Head's Up! These forums are read-only. All users and content have migrated. Please join us at community.neo4j.com.
05-03-2022 01:03 PM
I am trying to use the full-text index provided by neo4j. I am using neo4j desktop community 4.4.5.
I was following the example here https://neo4j.com/docs/cypher-manual/current/indexes-for-full-text-search/#administration-indexes-fu...
I created the node using
CREATE (m:Movie {title: "The Matrix"}) RETURN m.title
and created the index using
CREATE FULLTEXT INDEX titlesAndDescriptions FOR (n:Movie|Book) ON EACH [n.title, n.description]
but when I call the procedure in neo4j browser using
CALL db.index.fulltext.queryNodes("titlesAndDescriptions", "matrix") YIELD node, score
RETURN node.title, node.description, score
I get this nasty error
Failed to invoke procedure
db.index.fulltext.queryNodes
: Caused by: java.lang.IllegalStateException: IndextitlesAndDescriptions
entered a FAILED state. Please see database logs.: Cause of failure:
==================
java.lang.IllegalStateException: Failed to create index populator.
at org.neo4j.kernel.api.impl.fulltext.FailedFulltextIndexPopulator.failedException(FailedFulltextIndexPopulator.java:70)
at org.neo4j.kernel.api.impl.fulltext.FailedFulltextIndexPopulator.add(FailedFulltextIndexPopulator.java:65)
at org.neo4j.kernel.impl.api.index.MultipleIndexPopulator$PropertyScanConsumerImpl.addFromScan(MultipleIndexPopulator.java:814)
at org.neo4j.kernel.impl.api.index.MultipleIndexPopulator$PropertyScanConsumerImpl$1.process(MultipleIndexPopulator.java:777)
at org.neo4j.kernel.impl.transaction.state.storeview.GenerateIndexUpdatesStep$GeneratedIndexUpdates.completeBatch(GenerateIndexUpdatesStep.java:214)
at org.neo4j.kernel.impl.transaction.state.storeview.GenerateIndexUpdatesStep.batchDone(GenerateIndexUpdatesStep.java:122)
at org.neo4j.kernel.impl.transaction.state.storeview.GenerateIndexUpdatesStep.process(GenerateIndexUpdatesStep.java:115)
at org.neo4j.kernel.impl.transaction.state.storeview.GenerateIndexUpdatesStep.process(GenerateIndexUpdatesStep.java:49)
at org.neo4j.internal.batchimport.staging.ProcessorStep.lambda$receive$1(ProcessorStep.java:84)
at org.neo4j.internal.batchimport.executor.DynamicTaskExecutor$Processor.run(DynamicTaskExecutor.java:220)
at org.neo4j.kernel.impl.scheduler.ThreadPool.lambda$asCallable$1(ThreadPool.java:151)
at org.neo4j.kernel.impl.scheduler.ThreadPool.lambda$submit$0(ThreadPool.java:115)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.lang.RuntimeException: Could not create fulltext analyzer: String("")
at org.neo4j.kernel.api.impl.fulltext.FulltextIndexSettings.createAnalyzer(FulltextIndexSettings.java:56)
at org.neo4j.kernel.api.impl.fulltext.FulltextIndexProvider.getPopulator(FulltextIndexProvider.java:251)
at org.neo4j.kernel.impl.api.index.IndexProxyCreator.populatorFromProvider(IndexProxyCreator.java:153)
at org.neo4j.kernel.impl.api.index.IndexProxyCreator.createPopulatingIndexProxy(IndexProxyCreator.java:67)
at org.neo4j.kernel.impl.api.index.IndexingService$IndexPopulationStarter.apply(IndexingService.java:924)
at org.neo4j.kernel.impl.api.index.IndexingService$IndexPopulationStarter.apply(IndexingService.java:891)
at org.neo4j.kernel.impl.api.index.IndexMapReference.modify(IndexMapReference.java:52)
at org.neo4j.kernel.impl.api.index.IndexingService.createIndexes(IndexingService.java:586)
at org.neo4j.kernel.impl.api.index.IndexingService.createIndexes(IndexingService.java:569)
at org.neo4j.internal.recordstorage.IndexTransactionApplierFactory$SingleTransactionApplier.close(IndexTransactionApplierFactory.java:88)
at org.neo4j.internal.recordstorage.TransactionApplierFacade.close(TransactionApplierFacade.java:48)
at org.neo4j.internal.recordstorage.RecordStorageEngine.apply(RecordStorageEngine.java:506)
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.applyToStore(InternalTransactionCommitProcess.java:81)
at org.neo4j.kernel.impl.api.InternalTransactionCommitProcess.commit(InternalTransactionCommitProcess.java:53)
at org.neo4j.kernel.impl.api.DatabaseTransactionCommitProcess.commit(DatabaseTransactionCommitProcess.java:42)
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commitTransaction(KernelTransactionImplementation.java:880)
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.closeTransaction(KernelTransactionImplementation.java:732)
at org.neo4j.kernel.impl.api.KernelTransactionImplementation.commit(KernelTransactionImplementation.java:703)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.lambda$commit$0(TransactionImpl.java:179)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.safeTerminalOperation(TransactionImpl.java:700)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:174)
at org.neo4j.kernel.impl.coreapi.TransactionImpl.commit(TransactionImpl.java:169)
at org.neo4j.fabric.executor.FabricKernelTransaction.commit(FabricKernelTransaction.java:137)
at org.neo4j.fabric.executor.FabricLocalExecutor$KernelTxWrapper.doCommit(FabricLocalExecutor.java:262)
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:73)
at reactor.core.publisher.MonoRunnable.call(MonoRunnable.java:32)
at reactor.core.publisher.FluxFlatMap.trySubscribeScalarMap(FluxFlatMap.java:127)
at reactor.core.publisher.MonoFlatMap.subscribeOrReturn(MonoFlatMap.java:53)
at reactor.core.publisher.Mono.subscribe(Mono.java:4384)
at reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:426)
at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onNext(FluxConcatArray.java:201)
at reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2398)
at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onSubscribe(FluxConcatArray.java:193)
at reactor.core.publisher.MonoJust.subscribe(MonoJust.java:55)
at reactor.core.publisher.Mono.subscribe(Mono.java:4399)
at reactor.core.publisher.FluxConcatArray$ConcatArraySubscriber.onComplete(FluxConcatArray.java:258)
at reactor.core.publisher.FluxConcatArray.subscribe(FluxConcatArray.java:78)
at reactor.core.publisher.Mono.subscribe(Mono.java:4399)
at reactor.core.publisher.Mono.block(Mono.java:1705)
at org.neo4j.fabric.transaction.FabricTransactionImpl.doOnChildren(FabricTransactionImpl.java:286)
at org.neo4j.fabric.transaction.FabricTransactionImpl.commit(FabricTransactionImpl.java:197)
at org.neo4j.fabric.bolt.BoltFabricDatabaseService$BoltTransactionImpl.commit(BoltFabricDatabaseService.java:145)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State.closeTransaction(TransactionStateMachine.java:406)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine$State$2.commitTransaction(TransactionStateMachine.java:358)
at org.neo4j.bolt.runtime.statemachine.impl.TransactionStateMachine.commitTransaction(TransactionStateMachine.java:108)
at org.neo4j.bolt.transaction.StatementProcessorTxManager.commit(StatementProcessorTxManager.java:66)
at org.neo4j.bolt.v4.runtime.InTransactionState.processCommitMessage(InTransactionState.java:107)
at org.neo4j.bolt.v44.runtime.InTransactionState.processCommitMessage(InTransactionState.java:35)
at org.neo4j.bolt.v4.runtime.InTransactionState.processUnsafe(InTransactionState.java:56)
at org.neo4j.bolt.v3.runtime.FailSafeBoltStateMachineState.process(FailSafeBoltStateMachineState.java:48)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.nextState(AbstractBoltStateMachine.java:154)
at org.neo4j.bolt.runtime.statemachine.impl.AbstractBoltStateMachine.process(AbstractBoltStateMachine.java:102)
at org.neo4j.bolt.messaging.BoltRequestMessageReader.lambda$doRead$1(BoltRequestMessageReader.java:93)
at org.neo4j.bolt.runtime.DefaultBoltConnection.lambda$enqueue$0(DefaultBoltConnection.java:156)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatchInternal(DefaultBoltConnection.java:252)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:187)
at org.neo4j.bolt.runtime.DefaultBoltConnection.processNextBatch(DefaultBoltConnection.java:177)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.executeBatch(ExecutorBoltScheduler.java:257)
at org.neo4j.bolt.runtime.scheduling.ExecutorBoltScheduler.lambda$scheduleBatchOrHandleError$3(ExecutorBoltScheduler.java:240)
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
... 1 more
Caused by: java.util.NoSuchElementException: Could not find service provider org.neo4j.graphdb.schema.AnalyzerProvider
at org.neo4j.service.Services.lambda$loadOrFail$3(Services.java:138)
at java.base/java.util.Optional.orElseThrow(Optional.java:408)
at org.neo4j.service.Services.loadOrFail(Services.java:138)
at org.neo4j.service.Services.loadOrFail(Services.java:127)
at org.neo4j.kernel.api.impl.fulltext.FulltextIndexSettings.createAnalyzer(FulltextIndexSettings.java:51)
... 63 more
==================
05-03-2022 01:35 PM
Hello @kangwachimba7
I can't reproduce your error.
I think it's because the index was still being created. You should find more information in the log file of the database.
You can try dropping the index then recreating it then retesting your query.
Regards,
Cobra
05-03-2022 01:53 PM
tried that, when I call
SHOW FULLTEXT INDEXES
it is showing the state of the index as 'failed' what could that mean?
05-03-2022 01:54 PM
I don't know because you must look at the log file of the database.
Can you try to delete the index then recreate it?
05-03-2022 02:03 PM
yes I have tried to delete and recreate it and retest it
I have attached an image of my query.log
05-03-2022 02:05 PM
This screenshot doesn't show anything. Look in the debug.log
file.
Can you to restart the database?
05-03-2022 02:30 PM
I have deleted the database and retried again it works
I remember I had placed this line
dbms.index.fulltext.default_analyzer
in the neo4j.conf file maybe that caused the problem just deleted the whole database and rebuilt another one
05-03-2022 02:36 PM
Nice, all configuration parameters available for the neo4j.conf
file are available here.
All the sessions of the conference are now available online