@SASI.StandardAnalyzed |表不能有超过 0 个 SASI 索引,未能在 table 用户上创建 SASI 索引
@SASI.StandardAnalyzed | Tables cannot have more than 0 SASI indexes, failed to create SASI index on table user
我正在使用 Cassandra 数据库(通过 Datastax AstraDB)进行搜索查询,例如
SELECT * FROM userdb.users WHERE skill LIKE %jav% AND skill LIKE %node% AND updatedate BETWEEN "1641839170" AND "1641839370" AND City LIKE "Chen";
我阅读了 SASI 索引,它可以帮助解决上述查询。但是,当我使用 Spring 引导应用程序创建 SASI 索引时,出现以下错误。
InvalidRequest: Error from server: code=2200 [Invalid query] message="Tables cannot have more than 0 SASI indexes, failed to create SASI index on table user"
用户模型:
@Table
@Data
@Builder
public class User {
@PrimaryKey private Long userId;
private String username;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String skill;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String project;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String city;
@Column("updatedDate")
@CassandraType(type = CassandraType.Name.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ", shape = JsonFormat.Shape.STRING)
private LocalDateTime updatedDate;
@Column("createdDate")
@CassandraType(type = CassandraType.Name.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ", shape = JsonFormat.Shape.STRING)
private LocalDateTime createdDate;
}
非常感谢任何帮助。
我认为 DataStax Astra 不支持 SASI 索引 - 它是旧的且非常错误的索引实现。 DataStax 产品支持 Storage Attached Indexes,与 SASI 相比开销更少,并且应该更具可扩展性。但我不确定 Spring Data Cassandra 是否直接支持它。
我正在使用 Cassandra 数据库(通过 Datastax AstraDB)进行搜索查询,例如
SELECT * FROM userdb.users WHERE skill LIKE %jav% AND skill LIKE %node% AND updatedate BETWEEN "1641839170" AND "1641839370" AND City LIKE "Chen";
我阅读了 SASI 索引,它可以帮助解决上述查询。但是,当我使用 Spring 引导应用程序创建 SASI 索引时,出现以下错误。
InvalidRequest: Error from server: code=2200 [Invalid query] message="Tables cannot have more than 0 SASI indexes, failed to create SASI index on table user"
用户模型:
@Table
@Data
@Builder
public class User {
@PrimaryKey private Long userId;
private String username;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String skill;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String project;
@SASI(indexMode = CONTAINS)
@SASI.StandardAnalyzed
private String city;
@Column("updatedDate")
@CassandraType(type = CassandraType.Name.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ", shape = JsonFormat.Shape.STRING)
private LocalDateTime updatedDate;
@Column("createdDate")
@CassandraType(type = CassandraType.Name.TIMESTAMP)
@JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ", shape = JsonFormat.Shape.STRING)
private LocalDateTime createdDate;
}
非常感谢任何帮助。
我认为 DataStax Astra 不支持 SASI 索引 - 它是旧的且非常错误的索引实现。 DataStax 产品支持 Storage Attached Indexes,与 SASI 相比开销更少,并且应该更具可扩展性。但我不确定 Spring Data Cassandra 是否直接支持它。