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 の列があります。リクエストは、この 2 つの日付がある間隔内にあるすべての行を返すことです。完全に間隔内にある必要はありません。重要なのは、この間隔内で開始または終了することです。だから、私はどういうわけか次のようなものを実装する必要があります:
if( (dateTo is greaterThan intervalStart) or (dateFrom is lowerThan intervalEnd) )
IndexExpression を使用して。助言がありますか?私は明確だったと思います!前もって感謝します!