Cassandra + Solr:带紧凑型存储和复合键的桌子

时间:2014-01-23 13:39:50

标签: solr cassandra datastax-enterprise

我有一个关于使用Apache Solr的Apache Cassandra(1.2)的问题(如Datastax Enterprise 3.2.3)。 我安装了&使用CentOS虚拟机配置Datastax文档中描述的所有内容,基本测试工作正常,如上所述。 但是,在测试一些自定义配置时,我偶然发现了一个问题,我没有找到(还)直接帮助文档&常见问题:

我正在尝试让Solr使用Cassandra表,该表同时使用紧凑存储和复合主键。根据文档,最新的DSE / Solr能够理解这两个示例,但遗憾的是并非两者的结合。 至于Cassandra,这似乎没有任何问题,但我没有设法让它与Solr合作:

这是我添加到Cassandra的表格:

CREATE TABLE my_table(
myid text,
aa text,
bb text,
cc text,
PRIMARY KEY(myid,aa,bb)
) WITH COMPACT STORAGE;

这是我尝试(非常基本的)Solr-Schema的重要部分:

<schema name="my_schema" version="1.1">
 <types>
  <fieldType name="string" class="solr.StrField"/>    
 </types>
 <fields>
    <field name="myid" type="string" indexed="true"  stored="true"/>
    <field name="aa" type="string" indexed="true"  stored="true"/>
    <field name="bb" type="string" indexed="true"  stored="true"/>
    <field name="cc" type="string" indexed="true"  stored="true"/>
 </fields>
<uniqueKey>(myid,aa,bb)</uniqueKey>
</schema>

我正在使用Datastax的Solr入门教程中的solrconfig.xml(“nhanes”-data。)我没有改变它,因为我没有找到与此问题相关的明显设置。

省略“WITH COMPACT STORAGE;”时一切正常,但是当我保留它时,会导致

org.apache.solr.common.SolrException: Unable to create core

创建Solr核心时,它似乎也在Solr浏览器中找到了它的起源 界面告诉我:

java.io.IOException:java.io.IOException: InvalidRequestException(why:Cannot have key alias equals to a column name: myid).

我的问题:

  • 所描述的组合(Solr +复合键+紧凑型存储)是否可能?
  • 如果是的话:我错过了什么?
  • 如果不是:我会很感激能够处理这个问题的建议。我需要同时通过C ++ / Thrift遗留代码和CQL3来保持Cassandra模式,即紧凑存储似乎是不可避免的。实际的原始数据模式具有超级列,我试图通过使用复合键来模仿它。

非常感谢您抽出时间!

1 个答案:

答案 0 :(得分:1)

不幸的是,DSE搜索实际上并不支持使用复合主键的紧凑存储(错误非常模糊,我们会考虑改进这一点)。