如何在带有 SAI 索引的 TEXT 列上使用 CONTAINS?
How to use CONTAINS on TEXT column with SAI index?
根据这篇文章: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。
如果在具有文本值列表的列上创建 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 KEY
和 CONTAINS VALUES
旨在搜索文本类型集合(地图、集合和列表)中的特定字符串值 - 不支持用于搜索文本中的子字符串(这是 LIKE
的任务,目前还不支持(还?))。
根据 documentation:
Not supported: LIKE
, IN
, OR
根据这篇文章: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。 如果在具有文本值列表的列上创建 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 KEY
和 CONTAINS VALUES
旨在搜索文本类型集合(地图、集合和列表)中的特定字符串值 - 不支持用于搜索文本中的子字符串(这是 LIKE
的任务,目前还不支持(还?))。
根据 documentation:
Not supported:
LIKE
,IN
,OR