Проблема с фильтром Fluentcassandra - PullRequest
2 голосов
/ 13 апреля 2011

Я новичок в FluentCassandra и Cassandra.

У меня проблема с фильтрацией данных из диапазона значений.По моему мнению, я могу использовать универсальный список для фильтрации результатов, но я не знаю как?1005 *

CassandraSuperColumnFamily<UTF8Type, UTF8Type> familyname= db.GetColumnFamily<UTF8Type, UTF8Type>("Messages");
var results= familyname.Get("key")
                .Take(5)
                .FirstOrDefault()
                .AsDynamic();

Может быть, кто-нибудь может мне помочь?!

Спасибо calimero

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Поиск подстроки требует неэффективного последовательного сканирования.Cassandra не делает это легко, потому что обычно это неправильно:

  • , если вы хотите полнотекстовый поиск, вы должны использовать Solandra
  • , если вы хотите сделать аналитическийзапросов, вы должны использовать Pig или Hive поверх Hadoop, который распараллелит работу по всему кластеру

Если вам абсолютно необходимо выполнить непараллельное последовательное сканирование, вам придется пролистатьвручную и проверьте наличие подстроки в коде C #.

1 голос
/ 22 июня 2011

С учетом того, что сказал 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».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...