Cannot create a node with cypher when there is an LSM vector index existing for it
Hello,
ArcadeDB version : Using yesterday's release.
Two codes to reproduce the issue :
CREATE VERTEX TYPE EmbeddingNode
CREATE PROPERTY EmbeddingNode.vector ARRAY_OF_FLOATS
CREATE INDEX ON EmbeddingNode (vector) LSM_VECTOR METADATA {
dimensions: 4,
similarity: 'COSINE'
}
CREATE VERTEX TYPE EmbeddingNode2
CREATE PROPERTY EmbeddingNode2.vector ARRAY_OF_FLOATS
So we create two types of nodes, one with vector index, other with no vector index.
CREATE (node1:EmbeddingNode2 {vector: [0.0, 0.0, 0.0, 0.0]}) return node1 works (no LSM vector index created)
CREATE (node1:EmbeddingNode {vector: [0.0, 0.0, 0.0, 0.0]}) return node1 errors
com.arcadedb.exception.CommandExecutionException
Could be fixed by #2907 but I cannot build the latest version of it because gRPC required a more recent maven version, and after upgrading it I get this error :
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 17.502 s
[INFO] Finished at: 2025-12-11T09:57:33+01:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.14.1:compile (default-compile) on project arcadedb-grpc-client: Compilation failure: Compilation failure:
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[748,23] cannot access com.arcadedb.server.grpc.StreamQueryRequest.Builder
[ERROR] bad class file: /home/pierre/arcadedb/grpc/target/arcadedb-grpc-25.11.1-SNAPSHOT-grpc-interface.jar(/com/arcadedb/server/grpc/StreamQueryRequest$Builder.class)
[ERROR] class file truncated at offset 4096
[ERROR] Please remove or make sure it appears in the correct subdirectory of the classpath.
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[791,8] cannot find symbol
[ERROR] symbol: method putAllParameters(java.util.Map<java.lang.String,com.arcadedb.server.grpc.GrpcValue>)
[ERROR] location: variable b of type com.google.protobuf.GeneratedMessage.Builder
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[795,121] incompatible types: com.google.protobuf.Message cannot be converted to com.arcadedb.server.grpc.StreamQueryRequest
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[811,8] cannot find symbol
[ERROR] symbol: method putAllParameters(java.util.Map<java.lang.String,com.arcadedb.server.grpc.GrpcValue>)
[ERROR] location: variable b of type com.google.protobuf.GeneratedMessage.Builder
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[815,121] incompatible types: com.google.protobuf.Message cannot be converted to com.arcadedb.server.grpc.StreamQueryRequest
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[896,11] cannot find symbol
[ERROR] symbol: method setTransaction(com.arcadedb.server.grpc.TransactionContext)
[ERROR] location: variable reqB of type com.google.protobuf.GeneratedMessage.Builder
[ERROR] /home/pierre/arcadedb/grpc-client/src/main/java/com/arcadedb/remote/grpc/RemoteGrpcDatabase.java:[899,102] incompatible types: com.google.protobuf.Message cannot be converted to com.arcadedb.server.grpc.StreamQueryRequest
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :arcadedb-grpc-client
Nope, just tested on HEAD, not working, even with the other PR
probably all 3 issues are linked to this, didn't see it before because on ubuntu it runs on a service and I didn't bother reading logs
@lvca
2025-12-11 18:18:31.869 INFO [LSMVectorIndex] <ArcadeDB_0> Building vector index 'EmbeddingNode_0_1599578573100' on 1 properties...
2025-12-11 18:18:31.872 SEVER [LocalBucket] <ArcadeDB_0> Error on loading record #1:0 (error: Expected float array or ComparableVector as key for vector index, got class java.util.ArrayList)
2025-12-11 18:18:31.872 SEVER [LocalBucket] <ArcadeDB_0> Error on loading record #1:1 (error: Expected float array or ComparableVector as key for vector index, got class java.util.ArrayList)
2025-12-11 18:18:31.873 SEVER [LocalBucket] <ArcadeDB_0> Error on loading record #1:2 (error: Expected float array or ComparableVector as key for vector index, got class java.util.ArrayList)
2025-12-11 18:18:31.874 SEVER [LocalBucket] <ArcadeDB_0> Error on loading record #1:3 (error: Expected float array or ComparableVector as key for vector index, got class java.util.ArrayList)
2025-12-11 18:18:31.874 INFO [LSMVectorIndex] <ArcadeDB_0> Completed building vector index 'EmbeddingNode_0_1599578573100': processed 0 records in 5ms
How do you store the array of floats in the vertex/document? Using a list of object ?
Using the commands posted above in the first message, created vertex type using SQL then created using cypher CREATE (node1:EmbeddingNode {vector: [0.0, 0.0, 0.0, 0.0]}) return node1
To me it sounds like a list of float, not objects