【问题标题】:How to use CONTAINS on TEXT column with SAI index?如何在具有 SAI 索引的 TEXT 列上使用 CONTAINS?
【发布时间】:2021-06-01 06:35:48
【问题描述】:

根据这篇文章: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 操作)在此列中进行搜索?

附言 如果在具有 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

【问题讨论】:

    标签: cassandra datastax datastax-enterprise cassandra-sai


    【解决方案1】:

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

    documentation:

    不支持:LIKEINOR

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2011-04-26
      • 2012-02-22
      • 2014-10-12
      • 1970-01-01
      • 2011-02-22
      • 2012-01-30
      • 2022-07-16
      • 1970-01-01
      相关资源
      最近更新 更多