微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

是否可以使用集合在 cql 中搜索标签?

如何解决是否可以使用集合在 cql 中搜索标签?

是否可以在 CQL 表中查询与集合中的特定元素完全匹配的项目。例如,我们可以在下表中搜索 where tag="music" 吗?

create table if not exists example (
        website text,uuid text,message text,tags set<text>,created timestamp,primary key ((site),uuid))

解决方法

可以使用 CONTAINS 运算符搜索集合中的元素(请参阅 documentation)。但是它会很慢,因此收集索引可能会有所帮助(请参阅 docs for syntax),但也不一定是最佳的。更好的解决方案是类似于 DataStax 的存储附加索引,但它们还没有在 OSS Cassandra 中。另一种解决方案可能是集成真正的搜索引擎,例如 Solr(称为 DSE 搜索)或 Elasticsearch(如在 Elassandra 中)。

要考虑的主要事情是分析延迟要求,在某些情况下,最好有一个带有标记作为分区键的单独表,但在这种情况下,您可能会出现数据倾斜,因为没有标签太多,数据分布不均匀。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。