Cassandra 创建自定义索引错误 java.lang.ClassNotFoundException

Cassandra CREATE CUSTOM INDEX ERROR java.lang.ClassNotFoundException

-> Table :

cassandra@cqlsh:coba> CREATE TABLE data(
        ... nim int,
        ... nama text,
        ... alamat text,
        ... PRIMARY KEY (nim, alamat)
        ... );

-> 建立索引:

CREATE CUSTOM INDEX cari_alamat ON coba.data (alamat) USING 'org.apache.cassandra.index.sasi.SASIIndex';

-> 错误:

ServerError: java.lang.RuntimeException: java.lang.ClassNotFoundException: org.apache.cassandra.index.sasi.SASIIndex

-> 如果你能帮助我,我会很高兴

-> 谢谢你

正如最初怀疑的那样,我认为你是运行低于3.4的cassandra版本。

(这就是我要版本的原因)

我试了一下,在 3.0.10 上出现了同样的错误:

cqlsh:test> CREATE CUSTOM INDEX cari_alamat ON test.data (alamat) USING 'org.apache.cassandra.index.sasi.SASIIndex';
ConfigurationException: Unable to find custom indexer class 'org.apache.cassandra.index.sasi.SASIIndex'

理论上你可以自己实现: Cassandra Custom Secondary Index

但我想升级起来更容易。

另请注意,Sasi 索引可能存在一些错误:

SASI Indexes in Cassandra seem to have some bugs

但我想这个最好搜索cassandra Jira,这只是一个小警告。