Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
cassandra中的正则表达式搜索或类似类型功能_Cassandra_Cql3_Datastax_Cassandra 2.0 - Fatal编程技术网

cassandra中的正则表达式搜索或类似类型功能

cassandra中的正则表达式搜索或类似类型功能,cassandra,cql3,datastax,cassandra-2.0,Cassandra,Cql3,Datastax,Cassandra 2.0,我使用的是datastax cassandra 2.0版。 我们如何使用正则表达式在cassandra列中搜索值。有没有方法实现“LIKE”(如sQL)功能 我已经用下面的模式创建了表 CREATE TABLE Mapping ( id timeuuid, userid text, createdDate timestamp, createdBy text, lastUpdateDate timestamp, lastUpdateBy text, PRIMARY KEY (id,userid)

我使用的是datastax cassandra 2.0版。 我们如何使用正则表达式在cassandra列中搜索值。有没有方法实现“LIKE”(如sQL)功能

我已经用下面的模式创建了表

CREATE TABLE Mapping (
id timeuuid,
userid text,
createdDate timestamp,
createdBy text,
lastUpdateDate timestamp,
lastUpdateBy text,
PRIMARY KEY (id,userid)
);
我插入了一些测试记录,如下所示

       id                                  | userid   | createdby
     -------------------------------------+----------+-----------
      30c78710-c00c-11e3-bb06-1553ee5e40dd |      Jon |     admin
      3e673aa0-c00c-11e3-bb06-1553ee5e40dd |     Jony |     admin
      441c4210-c00c-11e3-bb06-1553ee5e40dd | Jonathan |     admin
我需要搜索记录,其中userid包含单词“jon”。这样,在结果中,我得到所有记录,包括jon,jony,jonathan

我知道,cassandra中没有类似sql的功能。 但在卡桑德拉有什么办法可以实现这一目标吗?
(注意:我正在使用datastax java驱动程序作为客户端api)。

您现在没有正则表达式签入cql。cassandra的基本用途是使其功能类似于大数据存储。您要求的那种功能可以在代码部分以优化的方式完成。如果你仍然坚持这个用法,我的建议是

列族1:

Id-用户Id的唯一Id 姓名-jonny(或您想使用的任何姓名) 组合-j、jon、jon等,以及您想要的所有可能的组合

查询此项并为您的查询获取适当的id

在列族中使用该id,而不是直接使用名称。使用该id进行查询


尽量使这些操作正常化。卡桑德拉就像你要控制的基地。它提供了关键数据的可用性。不是SQL的灵活性。

您使用的是DSE还是社区版本?在DSE的情况下,考虑对于这些类型的查询有一个SoR节点。如果没有,可以使用lucene/solr之类的东西作为cassandra之外的反向索引来实现特定功能。如果您只需要设置cassandra,那么这可能是一个麻烦,在这种情况下,您可以按照Ananth的建议使用手动反向索引。一种选择是保留包含2-3个字符前缀的行,这些行保存分区的索引。您可以查询这些分区,在客户端找到适当的分区,然后针对目标数据发出另一个查询。

存在一个问题。您也可以在社区版上使用它并执行搜索

查看强制性的“您也可以使用spark”+1。自去年以来,火花连接器取得了长足的进步。我正在使用它,它工作得很好-即使是流媒体。