1
我有一個帶有Cassandra db的Java應用程序。我正在使用Cassandra Pelops。我有一個專欄cf1,並有很多專欄。對於他們中的一些我創建了二級索引,所以我可以使用它們進行搜索。對於搜索的目的,我創建IndexExpression(表情)的列表,例如:在Cassandra IndexExpression中使用運算符'或'
final IndexExpression propertyIdExpression = new IndexExpression(
ByteBuffer.wrap(Bytes.fromUTF8(CassandraIntegrationDAOHelper.COL_PROPERTY_ID).toByteArray()),
IndexOperator.EQ,
ByteBuffer.wrap(Bytes.fromInt(entity.getProperty().getId()).toByteArray())
);
expressions.add(propertyIdExpression);
現在我需要包括一些額外的檢查。我有列dateFrom和dateTo。請求將返回這兩個日期在某個時間間隔內的所有行。他們不必完全處於這個區間,重要的是在這個區間開始或結束。所以,我需要以某種方式執行這樣的事情:
if((dateTo is greaterThan intervalStart) or (dateFrom is lowerThan intervalEnd))
通過使用IndexExpression。有什麼建議麼?我希望我很清楚!提前致謝!
感謝您的回答。不幸的是,現在改變數據結構不是一種選擇......我想只有兩個查詢的選項,我想避免它。 –