【问题标题】:InvalidQueryException despite having secondary index?InvalidQueryException 尽管有二级索引?
【发布时间】:2015-01-23 04:18:15
【问题描述】:

我有一个如下所述的列族。我有 name 列的辅助键。

CREATE TABLE group (
      pid timeuuid,
      members map<bigint, boolean>,
      name text,
      PRIMARY KEY ((pid))
    ) WITH
      bloom_filter_fp_chance=0.010000 AND
      caching='KEYS_ONLY' AND
      comment='' AND
      dclocal_read_repair_chance=0.100000 AND
      gc_grace_seconds=864000 AND
      index_interval=128 AND
      read_repair_chance=0.000000 AND
      replicate_on_write='true' AND
      populate_io_cache_on_flush='false' AND
      default_time_to_live=0 AND
      speculative_retry='99.0PERCENTILE' AND
      memtable_flush_period_in_ms=0 AND
      compaction={'class': 'SizeTieredCompactionStrategy'} AND
      compression={'sstable_compression': 'LZ4Compressor'};

    CREATE INDEX pidx ON group(name);

但是 query 来自 java 驱动程序的 name 列上的相等性给了我一个

com.datastax.driver.core.exceptions.InvalidQueryException: No indexed columns present in by-columns clause with Equal operator

我的查询如下。 google 中的所有搜索结果都与没有secondary index 或使用一些不相等的关系运算符有关。

尽管有二级索引,但出现此错误的原因是什么?

这是我的查询:SELECT * FROM group WHERE name ='Name'

更新:相同的架构在我的 localhost cassandra 服务器中有效,但在我们公司提供的服务器中无效。

无论如何,它在cqlsh 窗口中工作,但在远程服务器的情况下,它不能通过 java datastax 驱动程序工作其他类型的查询工作正常。

谢谢。

【问题讨论】:

  • 甚至没有评论?看来....
  • 我只是按照您的确切步骤操作,它在 cqlsh 中对我有用。你能再试试创建索引的步骤吗?
  • 我什至在我的本地主机服务器中尝试过它正在工作....但我在工作环境中,我说的是我们公司提供的存储密钥空间的远程服务器
  • 每个列族都会发生这种情况,从 cqlsh 可以正常工作,但从 java 不能正常工作...
  • @BrianC 有没有可能是因为我们公司的 cassandra 的 keyspaces 中的配置?

标签: cassandra datastax datastax-java-driver database nosql


【解决方案1】:

刚刚浏览了您的代码。创建了上面提到的表(使用复制粘贴只是为了确保你所做的一切都是正确的),创建了索引。一切正常。这导致以下两个结论之一:

  • 索引创建失败导致您看到错误消息。 (我的钱花在了这个...)
  • 您可能使用了不正确的键空间。

【讨论】:

  • 我什至在我的本地主机服务器中尝试过它正在工作....但我在工作环境中,我说的是我们公司提供的存储密钥空间的远程服务器
  • 所有列空间的问题都是一样的。如果索引创建是一个问题,我认为它不应该从 cqlsh 客户端工作。它是从 cqlsh 工作的,它不是从 java 程序工作的。
  • @pinkpanther 我认为它是一次性的。尝试在测试表上重新创建带有索引的 ks.cf 对,看看会发生什么。
猜你喜欢
  • 2014-09-13
  • 1970-01-01
  • 1970-01-01
  • 2012-07-10
  • 1970-01-01
  • 2018-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多