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重复了两次。
答案 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字符串解析结果,然后提取所有必要的数据。关于solr_query方面的更多文档是here。