【问题标题】:Cassandra CREATE CUSTOM INDEX ERROR java.lang.ClassNotFoundExceptionCassandra 创建自定义索引错误 java.lang.ClassNotFoundException
【发布时间】:2017-04-18 08:06:21
【问题描述】:

-> 表格:

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

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

-> 谢谢你

【问题讨论】:

  • 你运行的是哪个版本的 cassandra?
  • 在 Cassandra 3.4 及更高版本中,提供了二级索引的新实现,即 SSTable 附加二级索引 (SASI)

标签: cassandra cqlsh


【解决方案1】:

正如最初所怀疑的那样,我认为您运行的 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 中搜索这个,这只是一个小警告。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-12
    • 1970-01-01
    • 2019-06-17
    • 2014-03-24
    • 1970-01-01
    • 1970-01-01
    • 2020-09-18
    • 1970-01-01
    相关资源
    最近更新 更多