我是FluentCassandra和Cassandra的新人。
我有一个问题是从一系列值中过滤数据。在我看来,我可以使用通用列表来过滤结果,但我不知道如何?!
在MSSQL中,我使用它(SELECT * FROM TABLE WHERE Row1,如'%search%')。
CassandraSuperColumnFamily<UTF8Type, UTF8Type> familyname= db.GetColumnFamily<UTF8Type, UTF8Type>("Messages");
var results= familyname.Get("key")
.Take(5)
.FirstOrDefault()
.AsDynamic();
也许有人可以帮助我?!
由于 calimero
答案 0 :(得分:2)
搜索子字符串需要低效的顺序扫描。 Cassandra并不那么容易,因为这通常是错误的做法:
如果您绝对必须进行非并行seq扫描,则必须手动翻页并检查C#代码中的子字符串。
答案 1 :(得分:1)
jbellis说,现在支持Cassandra 0.7及更高版本的列名扫描。要扫描特定值的列名,您可以执行以下操作:
var results = familyname.Get(startKey: "key", keyCount: 30, family => family["last_name"] == "Smith")
.Take(5)
.FirstOrDefault()
.AsDynamic()
上面的代码将从指定的密钥开始,并扫描下一个30个密钥,以查找名称为“last_name”且值为“Smith”的列。