C# Fluentcassandra过滤器问题
卡桑德拉和卡桑德拉是新来的 我在从一个值范围中筛选数据时遇到问题。在我看来,我可以使用一个通用列表来过滤结果,但我不知道怎么做 在MSSQL中,我使用这个SELECT*FROM表,其中行1类似于“%search%”C# Fluentcassandra过滤器问题,c#,cassandra,fluentcassandra,C#,Cassandra,Fluentcassandra,卡桑德拉和卡桑德拉是新来的 我在从一个值范围中筛选数据时遇到问题。在我看来,我可以使用一个通用列表来过滤结果,但我不知道怎么做 在MSSQL中,我使用这个SELECT*FROM表,其中行1类似于“%search%” CassandraSuperColumnFamily<UTF8Type, UTF8Type> familyname= db.GetColumnFamily<UTF8Type, UTF8Type>("Messages"); var results= family
CassandraSuperColumnFamily<UTF8Type, UTF8Type> familyname= db.GetColumnFamily<UTF8Type, UTF8Type>("Messages");
var results= familyname.Get("key")
.Take(5)
.FirstOrDefault()
.AsDynamic();
也许有人能帮我
谢谢
calimero搜索子字符串需要低效的顺序扫描。卡桑德拉并没有让这变得容易,因为这通常是错误的: 如果你想要全文搜索,你应该使用Solandra 如果要进行分析查询,应该在Hadoop上使用Pig或Hive,这将使整个集群的工作并行化
如果您必须执行非并行的seq扫描,那么您必须手动翻页浏览这些行,并检查C代码中的子字符串。正如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。谢谢jbellis。我将测试SolandraAPI。