我有张table叫 place_ratings
带列标题 rating_id
, place_id
, place_name
, place_rating
,和 cuisines
.
主键是 rating_id
它是一个整数。 place_id
是一个整数 place_rating
. place_name
是文本类型。 cuisines
是一组类型文本。
表中一行的示例数据如下: rating_id
= 5 place_id
= 658 place_name
='博比汉堡' place_rating
= 10 cuisines
={'汉堡','薯条','奶昔'}
我正在尝试编写一个查询,以返回烹饪仅为“pizzeria”的所有行。
这是我的密码: SELECT place_id, place_name, place_rating FROM place_ratings WHERE cuisines = { 'Pizzeria' };
但是,我收到以下错误消息: InvalidRequest: Error from server: code=2200 [Invalid query] message="Collection column 'cuisines' (set<text>) cannot be restricted by a '=' relation"
为了让查询正确运行,我需要对代码进行哪些更改?
谢谢!
1条答案
按热度按时间m1m5dgzv1#
可以为该列创建辅助索引,然后使用此索引进行搜索(有关详细信息,请参阅文档):
但是通常这样的查询并不适合cassandra,因为它们需要扫描所有节点上的数据以找到包含数据的实际行,因为您没有提供分区键。虽然如果您在分区键上添加了一个限制,例如,在特定城市搜索比萨店,那么效果会更好。