微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在带有 SAI 索引的 TEXT 列上使用 CONTAINS?

如何解决如何在带有 SAI 索引的 TEXT 列上使用 CONTAINS?

根据这篇文章https://docs.datastax.com/en/storage-attached-index/6.8/sai/saiFaqs.html,TEXT 类型支持 CONTAINS 操作。但我收到这样的错误com.datastax.driver.core.exceptions.InvalidQueryException: Cannot use CONTAINS on non-collection column

谁能解释一下如何在 TEXT 列上使用 SAI 索引,以便在此列中使用 CONTAINS 操作(如 sql LIKE 操作)进行搜索

P.S. 如果在带有 TEXT 值列表的列上创建 SAI 索引,我就可以使用 CONTAINS 操作。但是不想自己生成子串的所有组合。至少根据文档,应该可以在 TEXT 上使用 CONTAINS...

数据库架构:

CREATE TABLE IF NOT EXISTS some_table (
 id text,data text,list_for_search list<text>,PRIMARY KEY (id))
WITH CLUSTERING ORDER BY (id ASC);

CREATE CUSTOM INDEX IF NOT EXISTS some_table_search_idx
 ON some_table (data)
 USING 'StorageAttachedindex' WITH OPTIONS = {'case_sensitive': 'false'};

DSE 6.8.3

解决方法

CONTAINS 及其变体 CONTAINS KEYCONTAINS VALUES 旨在搜索文本类型(地图、集合和列表)集合中的特定字符串值 - 不支持搜索文本中的子字符串(这是不支持的 LIKE 的任务(还?))。

每个documentation

不支持:LIKEINOR

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。