Cassandra 卡桑德拉CQL通配符搜索
我有一个像这样的桌子结构 创建表文件(id文本主键、fname文本、mimetype文本、isdir布尔值、位置文本)Cassandra 卡桑德拉CQL通配符搜索,cassandra,cql,cql3,Cassandra,Cql,Cql3,我有一个像这样的桌子结构 创建表文件(id文本主键、fname文本、mimetype文本、isdir布尔值、位置文本) 在文件上创建索引文件\u位置(位置) 下表内容如下: 将值('1','f1','pdf',False',c:/test/')插入文件(id,fname,mimetype,isdir,location) 在文件中插入(id、fname、mimetype、isdir、位置)值('2','f2','pdf',False',c:/test/') 在文件中插入(id、fname、mime
在文件上创建索引文件\u位置(位置)强> 下表内容如下: 将值('1','f1','pdf',False',c:/test/')插入文件(id,fname,mimetype,isdir,location)
在文件中插入(id、fname、mimetype、isdir、位置)值('2','f2','pdf',False',c:/test/')
在文件中插入(id、fname、mimetype、isdir、位置)值('3','f3','pdf',False',c:/test/')
在文件(id、fname、mimetype、isdir、位置)中插入值('4','f4','pdf',False',c:/test/a/')强> 我想列出符合以下条件的所有ID: 从文件中选择id,该文件的位置为“%/test/%”强>
我知道CQL中不支持like,请任何人建议我对此类通配符搜索查询应采取的方法。请建议。DataStax Enterprise向Cassandra添加全文搜索:从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%”查询。
更多信息。是否有税收的替代方案。它似乎没有适用于windows的版本。我主要在寻找DSE搜索。请注意,SASI索引几乎没有维护,因此在C*4.0中,默认情况下它们将被禁用,要启用它们,您需要更改
cassandra.yaml
。。。