Cassandra CREATE CUSTOM INDEX ERROR java.lang.ClassNotFoundException

时间:2017-04-18 08:06:22

标签: cassandra cqlsh

- >表:

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

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

- >谢谢你

1 个答案:

答案 0 :(得分:2)

最初被推测,我认为你运行的cassandra版本低于3.4。

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

我试了一下,在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这个更好,这只是一个小警告。