如何在 select 子句中使用自定义索引查询 cassandra table
how to query on cassandra table using custom index in select clause
我有一个由 solr 在 cassandra 上创建的自定义索引 table
CREATE CUSTOM INDEX custom_index ON table_name (column) USING 'com.datastax.bdp.search.solr.Cql3SolrSecondaryIndex';
据我所知,在 cassandra 的 select 子句中,我们只能在 select 查询的 where 子句中有主键。
我可以在 where 子句中使用这个自定义索引吗?
是的,你可以。您可以在 where 子句中使用分区键和索引。但是如果你想使用没有分区键的索引列,你必须指定允许过滤(见下面的例子)
SELECT * FROM <myColumnFamilly> WHERE <column> > 100 ALLOW FILTERING;
当然在这个例子中必须是数字类型。
为了 运行 基于你的 lucene-solr 索引的 CQL 查询,你必须安装 DataStax Enterprise 4.6 并使用 "solr_query" 特殊列,如下所述:http://www.datastax.com/documentation/datastax_enterprise/4.6/datastax_enterprise/srch/srchCql.html
我有一个由 solr 在 cassandra 上创建的自定义索引 table
CREATE CUSTOM INDEX custom_index ON table_name (column) USING 'com.datastax.bdp.search.solr.Cql3SolrSecondaryIndex';
据我所知,在 cassandra 的 select 子句中,我们只能在 select 查询的 where 子句中有主键。
我可以在 where 子句中使用这个自定义索引吗?
是的,你可以。您可以在 where 子句中使用分区键和索引。但是如果你想使用没有分区键的索引列,你必须指定允许过滤(见下面的例子)
SELECT * FROM <myColumnFamilly> WHERE <column> > 100 ALLOW FILTERING;
当然在这个例子中必须是数字类型。
为了 运行 基于你的 lucene-solr 索引的 CQL 查询,你必须安装 DataStax Enterprise 4.6 并使用 "solr_query" 特殊列,如下所述:http://www.datastax.com/documentation/datastax_enterprise/4.6/datastax_enterprise/srch/srchCql.html