我有一個可選的柱輔助索引:如何使用幻像查詢具有二級索引的可選列?
class Sessions extends CassandraTable[ConcreteSessions, Session] {
object matchId extends LongColumn(this) with PartitionKey[Long]
object userId extends OptionalLongColumn(this) with Index[Option[Long]]
...
}
然而,indexedToQueryColumn
隱式轉換不適用於可選列,所以這不會編譯:
def getByUserId(userId: Long): Future[Seq[Session]] = {
select.where(_.userId eqs userId).fetch()
}
也不對這樣的:
select.where(_.userId eqs Some(userId)).fetch()
或更改索引類型:
object userId extends OptionalLongColumn(this) with Index[Long]
有沒有辦法使用幻像執行這樣的查詢?
我知道我可以反規範化,但它會涉及一些非常混亂的家務和三倍我們的(大量的)數據大小。查詢通常只返回一些結果,所以我願意在這種情況下使用二級索引。
謝謝!我最終擴展了幽靈以支持這一點。我從那時開始進行負載測試,事實證明,我將不得不反正規化,否則性能不夠好。 – Henning