我目前正在尝试使用 Python 和 cqlengine 0.21.0 对 DSE 4.6.1 (Cassandra 2.0.12.200) 的查询结果进行分页。
我被查询的表是:
CREATE TABLE tags_for_search (
village_id int,
tag_prefix text,
tag text,
time timeuuid,
author_id int,
tag_id uuid,
type text,
PRIMARY KEY ((village_id, tag_prefix), tag, time)
) WITH CLUSTERING ORDER BY (time DESC) AND
bloom_filter_fp_chance=0.010000 AND
caching='KEYS_ONLY' AND
comment='' AND
dclocal_read_repair_chance=0.100000 AND
gc_grace_seconds=864000 AND
index_interval=128 AND
read_repair_chance=0.000000 AND
populate_io_cache_on_flush='false' AND
default_time_to_live=0 AND
speculative_retry='99.0PERCENTILE' AND
memtable_flush_period_in_ms=0 AND
compaction={'class': 'SizeTieredCompactionStrategy'} AND
compression={'sstable_compression': 'LZ4Compressor'};
Python中的结果分页/分页(DataStax Enterprise / DSE 4.6.1)是否有替代方法(使用cqlengine 0.21.0)?记录在案的解决方案(http://cqlengine.readthedocs.org/en/latest/topics/queryset.html#token-function)似乎由于 # 7016而被破坏。
我对数据的初始查询是:
SELECT * FROM that_keyspace.tags_for_search WHERE "tag_prefix" = 'der' AND "tag_text" = '#derpy1' AND "village_id" = 1 LIMIT 10000;
或者通过 cqlengine 在 Python 中:
village_tags = VillageSearch.objects.filter(village_id=1, tag_prefix='der', tag_text='#derpy1')
tags_data = []
for village_tag in village_tags:
tags_data.append(village_tag.to_dict())
first_page = village_tags
last = first_page[-1]
next_page = list(village_tags.filter(pk__token__gt=cqlengine.Token(last.pk)))
它抛出错误:
code=2200 [Invalid query] message="Column "village_id" cannot be restricted by both an equality and an inequality relation"
是否有替代方法可以用来避免此错误以立即使用?
感谢您提供的任何帮助!