我有一个带有 Cassandra db 的 Java 应用程序。我正在使用 Cassandra Pelops。我有一个 columnFamily cf1,那里有很多列。对于其中一些,我创建了二级索引,因此我可以使用它们进行搜索。出于搜索目的,我创建了一个 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。有什么建议么?我希望我很清楚!提前致谢!