php - 如何在 cassandra 中搜索 map 数据类型列?

标签 php cassandra

我正在为 cassandra 中的一列使用 map 数据类型,它存储类似

的值
{
    'email':'example@example.com',
    'Id':2
}

如何搜索 email='example@example.com' OR Id = 2

最佳答案

我认为这不可能以直接的方式实现。对于初学者来说,CQL 中没有 OR 运算符。您必须通过合并两个查询的结果来执行 OR 客户端。

其次,要进行这样的查询,您需要二级索引。但是二级索引不允许您(目前)同时索引映射的键和值。来自CQL 3.1文档:

Indexes on the keys and values of a map cannot co-exist.

据我所知,您可以获得的最接近的是一个查询

the_map CONTAINS ('example@example.com')

还有一个用

the_map CONTAINS ('2')

只要保证 emailID 的值不能重叠,两个查询的合并结果应该会给你想要的结果。但无法确保“2”实际上是键 ID 的值或“example@example.com”是键 email 的值。

关于php - 如何在 cassandra 中搜索 map 数据类型列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35377591/

相关文章:

php - css类属性动态变化

PHP - 在 $_SESSION 数组中找不到现有的字符串值

php - yii2 上的多个数据库连接

ruby-on-rails - Ruby on Rails 的 Cassandra、mongodb 或 couchdb

cassandra - 正确的 cassandra key 空间恢复过程

php - sql 获取日期限制为 1

php - 快速以肖像模式拍摄照片并上传到服务器 - 上传的图像显示方向错误

database - 什么时候应该使用列族 NoSQL 解决方案与键值、文档存储、图形

Cassandra,改变replication_factor后的奇怪行为

c# - cassandra 节点可以高度便携吗?