arcadedb icon indicating copy to clipboard operation
arcadedb copied to clipboard

Cannot create a node with cypher when there is an LSM vector index existing for it

Open ExtReMLapin opened this issue 1 week ago • 5 comments

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

ExtReMLapin avatar Dec 11 '25 08:12 ExtReMLapin

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

ExtReMLapin avatar Dec 11 '25 08:12 ExtReMLapin

Nope, just tested on HEAD, not working, even with the other PR

ExtReMLapin avatar Dec 11 '25 09:12 ExtReMLapin

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

ExtReMLapin avatar Dec 11 '25 17:12 ExtReMLapin

How do you store the array of floats in the vertex/document? Using a list of object ?

lvca avatar Dec 11 '25 17:12 lvca

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

ExtReMLapin avatar Dec 11 '25 17:12 ExtReMLapin