当前位置: 首页 > 知识库问答 >
问题:

卡桑德拉 (数据斯塔克斯 ) CQL 忽略文本列的大小写

傅丁雷
2023-03-14

我已经用下面的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'

我想从表中选择所有行,而不管演员的名字大小写,例如“汤姆·汉克斯”、“汤姆·汉克斯”、“汤姆·汉克斯”等。

有可能吗?

共有1个答案

吕衡
2023-03-14

我想搜索所有案例

首先,如果你想“搜索”,你需要一个不同的工具,比如弹性搜索。卡桑德拉用于基于键的查询,这与搜索非常不同。

不,你想做的事真的不可能用卡桑德拉,因为它关心的是案件。我创建了上面描述的表定义,并插入了四行,每行都有一个与Tom Hanks名字不同的案例应用程序。然后,我使用标记函数查询结果:

aploetz@cqlsh:stackoverflow> SELECT actor,token(actor),title FROM video_by_actor ;

 actor     | system.token(actor)  | title
-----------+----------------------+---------------------
 Tom Hanks | -4258050846863339499 |        Forrest Gump
 Tom hanks | -3872727890651172910 | Saving Private Ryan
 tom Hanks | -3300209463718095087 | Joe vs. the Volcano
 tom hanks |  1022609553103151654 |           Apollo 13

(4 rows)

请注意,“汤姆·汉克斯”的每个不同案例如何生成不同的令牌。由于此表在 Actor 上进行分区,这意味着这些行可能存储在不同的节点上。

同样,您可能希望使用实际的搜索引擎来进行类似的事情。他们将拥有像分析器这样的工具,可以启用“模糊匹配”等功能。

 类似资料:
  • 我正在尝试运行以下查询 我将Long的Java列表绑定为参数,并得到一个异常 如果我尝试使用(?),它期望绑定单个Long项目,但我需要一个集合 语法有误吗?

  • 我正在使用卡桑德拉1.2.4和1.0.0的Datastax java驱动程序(通过Clojure的Alia,但我认为这在这里并不重要)。如果我准备一个带有 timeuuid 列的语句,并将 “now()” 放在 timeuuid 的值中,now() 在编译准备好的语句时被计算一次,然后就再也没有计算过了。 想象一下这个准备好的语句:"插入到some_table(id, time)值(?, now(

  • 请看下面的代码,让我知道我哪里做错了? 使用: DSE版本-5.1.0 172.31.16.45:9042连接到测试群集。[cqlsh 5.0.1|Cassandra3.10.0.1652|DSE 5.1.0|CQL规范3.4.4|本地协议v4]使用HELP寻求帮助。 谢谢 斯卡拉 斯卡拉 斯卡拉 我在这里什么都得不到?甚至没有错误。

  • 我使用的是spring数据cassandra,需要使用jpa映射一个字段,在cassandra中,该字段的类型为

  • 我是卡桑德拉的新手,我正在尝试使用此CQL查询更新表: 我使用DataTax PHP驱动程序在PHP中工作,此语句的代码如下: 表格: 当我执行语句时,我得到错误“缺少强制的PRIMARY KEY部分域”,因此我添加了子句ALLOW FILTERING: 但是我得到另一个错误,“第1:48行在'允许'处缺少EOF”。这些查询出了什么问题?

  • 我正在用Cassandra开始一个新项目(并计划使用最新的稳定版(1.2.x))。我尝试过几种不同的Java库,如Hector、Astyanax、Cassandra jdbc。。。 其中,(简而言之)我的选择是阿斯蒂亚纳克斯。但后来我也发现并尝试了数据堆栈的Java驱动程序,它支持新的CQL二进制协议,如果你只使用CQL,它要干净得多。而且1.0.0 GA版本似乎很快就会发布。 你会推荐哪一个?谢