Java InvalidRequestException(原因:by columns子句中没有带“equals”运算符的索引列)
我已经创建了一个键空间,并使用一些列名创建了列族。并以编程方式在该键空间中添加记录。现在,我将在那个键槽中再添加一个coulmn,并添加新记录。这是成功。。。但在使用equals运算符搜索新列字段值时。。我收到以下异常Java InvalidRequestException(原因:by columns子句中没有带“equals”运算符的索引列),java,cassandra,Java,Cassandra,我已经创建了一个键空间,并使用一些列名创建了列族。并以编程方式在该键空间中添加记录。现在,我将在那个键槽中再添加一个coulmn,并添加新记录。这是成功。。。但在使用equals运算符搜索新列字段值时。。我收到以下异常me.prettyprint.hector.api.exceptions.HInvalidRequestException:InvalidRequestException(原因:在带有“equals”运算符的by columns子句中没有索引列) 我认为有些行没有新的列字段。。。这
me.prettyprint.hector.api.exceptions.HInvalidRequestException:InvalidRequestException(原因:在带有“equals”运算符的by columns子句中没有索引列)
我认为有些行没有新的列字段。。。这是个问题吗?。。你能帮我解决这个问题吗?。。。。在普通关系数据库中,如果在表中添加任何新列,我们可以向现有记录添加空值。。。我们可以用卡桑德拉来解决这个问题吗?。。。。我的最终结果应该是,我可以使用新列字段搜索记录……是……出现异常的原因是,在未编入索引的中新添加的列执行相等或类似操作;在更改列族时,您必须编写
column_metadata = [{column_name : 'username',
validation_class : UTF8Type,
index_name : 'username_idx',
index_type : 0}]
最后的alter查询如下
UPDATE COLUMN FAMILY your_CF_name with column_type = 'Standard'
and comparator = 'UTF8Type'
and default_validation_class = 'UTF8Type'
and key_validation_class = 'UTF8Type'
and column_metadata = [
{column_name : 'your_all_existing_columns',
validation_class : your_all_existing_validation_class,
index_name : 'user_defined_name',
index_type : 0},
.
.
.
{column_name : 'your_new_additional_column',
validation_class : your_validation_class,
index_name : 'user_defined_name',
index_type : 0}];