我已经使用下面的cql创建了一个表:我想运行查询来按演员名称查找所有视频(不区分大小写)。
CREATE TABLE video_by_actor(
actor text, added_date timestamp, video_id timeuuid,
character_name text, description text,
encoding frozen<video_encoding>,
tags set<text>, title text, user_id uuid,
primary key ((actor), added_date)) with clustering order by (added_date desc);
select * from video_by_actor where actor='Tom Hanks'
我想从表中选择所有行,而不考虑演员的姓名大小写,例如“tom hanks”、“tom hanks”、“tom hanks”等。
有可能吗?
1条答案
按热度按时间yv5phkfx1#
我要搜查所有的案子
首先,如果你想“搜索”,你需要一个不同的工具,比如elasticsearch。cassandra用于基于密钥的查询,这与搜索非常不同。
不,Cassandra不可能让你这么做,因为他关心的是这个案子。我创建了上面描述的表定义,并在tomhanks的名字中插入了四行,每行都有一个不同的case应用程序。然后我用
token
功能:注意“tom hanks”的每一个不同的例子是如何产生一个不同的标记的。因为这个表正在分区
actor
,这意味着这些行可能存储在不同的节点上。再说一次,你可能想用一个真正的搜索引擎来搜索这样的东西。他们将拥有诸如分析器之类的工具,可以启用“模糊匹配”之类的功能。