DSE搜索获得不同的列数

时间:2018-07-24 18:08:55

标签: cassandra datastax datastax-java-driver

DSE搜索获得不同的列数。

在DSE搜索中无法执行不同数量的查询:

SELECT * FROM mykeyspace.mysolr WHERE solr_query='quotes:succ*';

在上述查询中,我需要获取引号列的不同值。

赞:

select count(distinct(quotes)) from mykeyspace.mysolr WHERE 
solr_query='quotes:succ*';

但是失败了。

任何建议表示赞赏。

更新:

假设我们有Column Airport。 ID |机场FlightNum 1 | AL | 1 2 | AG | 2 3 | AK | 3 4 | AL | 3 5 | AM | 2

所以在上面,我需要找到以A *开头的不同机场的数量

SELECT * FROM mykeyspace。航班在solr_query ='Airport:A *';

我需要的答案是:

A * | 4

答案为4,因为AL重复了两次。

1 个答案:

答案 0 :(得分:2)

由于CQL不支持count(distinct(...))(请参阅syntax),因此无法直接使用CQL,但是可以在应用程序方面使用Solr构面和小数据处理来解决问题:< / p>

cqlsh:test> SELECT * FROM solr WHERE 
    solr_query='{"q":"quotes:succ*","facet":{"field":"quotes"}}';

 facet_fields
--------------------------------------------
 {"quotes":{"succ3":2,"succ1":1,"succ2":1}}

(1 rows)

您可以获取结果,并从JSON字符串解析结果,然后提取所有必要的数据。关于so​​lr_query方面的更多文档是here