4

我有一个像这样的表结构

创建表文件(id 文本主键、fname 文本、mimetype 文本、isdir 布尔值、位置文本);
在文件(位置)上创建索引文件位置;

以下是表中的内容:

插入文件 (id, fname, mimetype, isdir, location) values('1', 'f1', 'pdf', False, 'c:/test/');
插入文件 (id, fname, mimetype, isdir, location) values('2', 'f2', 'pdf', False, 'c:/test/');
插入文件 (id, fname, mimetype, isdir, location) values('3', 'f3', 'pdf', False, 'c:/test/');
插入文件 (id, fname, mimetype, isdir, location) values('4', 'f4', 'pdf', False, 'c:/test/a/');

我想列出所有符合以下条件的 id:

从文件中选择 id,其中位置如 '%/test/%';

我知道在 CQL 中不支持 like,任何人都可以建议我应该为这些通配符搜索查询采取的方法。请建议。

4

2 回答 2

7

DataStax Enterprise 为 Cassandra 添加全文搜索:http ://www.datastax.com/docs/datastax_enterprise3.1/solutions/search_index

于 2013-08-26T19:16:02.883 回答
1

从 Cassandra 3.4 开始,这可以通过 SASI 索引实现。这应该有效:

CREATE CUSTOM INDEX string_search_idx ON file(location) 
USING 'org.apache.cassandra.index.sasi.SASIIndex'
WITH OPTIONS = {
    'mode': 'CONTAINS',
    'analyzer_class': 'org.apache.cassandra.index.sasi.analyzer.StandardAnalyzer',
    'tokenization_enable_stemming': 'true',
    'tokenization_locale': 'en',
    'tokenization_skip_stop_words': 'true',
    'analyzed': 'true',
    'tokenization_normalize_lowercase': 'true'
};

这将搜索列“文件”上的所有“%abc%”查询。更多信息在这里

于 2019-02-19T07:21:51.237 回答