我的表格电影有一列,其中包含该电影类型的列表。
我试图在数据上放置一个索引。
CREATE INDEX ON movies (genres);
当我尝试列出纪录片或音乐剧类型的所有电影时,我得到了结果。
Select * from movies where genres contains 'Documentary';
但是试图列出所有其他类型的电影,如惊悚片、喜剧片或犯罪片,我遇到了一个错误:
Select * from movies where genres contains 'Thriller';
ReadFailure: Error from server: code=1300 [Replica(s) failed to execute read] message="Operation failed - received 0 responses and 1 failures" info={'failures': 1, 'received_responses': 0, 'required_responses': 1, 'consistency': 'ONE'}
这怎么可能?
我相信您需要在 ON 语句之前列出您的伪列名称。
CREATE INDEX new_genres ON movies (genres);
如果您只是想查看某种类型,您可以:
SELECT genres
FROM movies
WHERE genres LIKE 'DOCUMENTARY'
and genres LIKE 'MUSICAL';
这将列出与它们所属的所有电影相对应的指定流派。
我希望这有帮助?
如果超过tombstone_failure_threshold
,您可能会遇到此错误。
您可以尝试增加 cassandra.yaml 中的tombstone_failure_threshold
或 通过运行 NodeTool 修复和压缩来清理逻辑删除。