https://www.cnblogs.com/bonelee/p/6306079.html

Allow filtering:

如果你的查询条件里,有一个是根据索引查询,那其它非索引非主键字段,可以通过加一个ALLOW FILTERING来过滤实现;

  虽然查询非索引非主键字段,但是只要加了ALLOW FILTERING条件,它会先根据索引查出来的值,再对结果进行过滤;

(如果不加ALLOW FILTERING,而又有非索引列,这样是不允许的; 加上ALLOW FILTERING,相当于在结果后再进行过滤。)

二级索引:

二级索引,作为辅助索引就是为了找到一级索引。然后再通过一级索引找到真正的值:二级索引可以用=, 但是不能用 >; 如果不是二级索引,而是allow filtering的列,可以用>, 但是要带上allow filtering

排序: 

  使用order by的限制。
  1:  必须有所有partition key 的 “=” 查询
  2:排序必须根据clustering key的顺序进行有序的、 相同的升序和降序排序(当然可以在建表时指定有的升序,有的降序;不管如何要保持建表指定的排序和查询               的排序一致)
  3:order by 的查询前面不能有索引查询。 (这个确实是,但是不知道是什么原理)

Cassandra 的 CQL太弱了;

  1. CQL语句不能同时包含order by 和 like

    要使用like语句,需要建立相关索引

CREATE CUSTOM INDEX seller_name_index ON deallistbylineitem (seller_name)
USING 'org.apache.cassandra.index.sasi.SASIIndex';

you can't use like and order by in same query(https://stackoverflow.com/questions/49247092/order-by-and-like-in-same-cassandra-query);

2.  Cassandra CQL不支持NOT in/  !=

 3   不支持类似于  limit start, count这样的分页,但是有另外的方法,用token可以实现。          

     4     where 的查询条件中支持 AND 但是不支持  OR。
   
 5    不支持join

总结:

   本连项目打算用cassadra, 研究了一下,发现CQL语句很弱,不适合我们的业务需求;

   Cassandra确实很快,但是不适合与稍微复杂的查询;

   可以通过集成spark、solr来加强CQL语句的功能

Cassandra 学习七 cassandra研究的更多相关文章

  1. Cassandra 学习笔记 - 1 - 关于Cassandra

    摘要 - Cassandra 的历史 Cassandra能做什么 Apache Cassandra最早是Facebook为了改进他们的Inbox搜索功能,由Avanash Lakshman和Prash ...

  2. 回望2017,基于深度学习的NLP研究大盘点

    回望2017,基于深度学习的NLP研究大盘点 雷锋网 百家号01-0110:31 雷锋网 AI 科技评论按:本文是一篇发布于 tryolabs 的文章,作者 Javier Couto 针对 2017 ...

  3. MyBatis学习七:spring和MyBatis整合

    <\mybatis\day02\16mybatis和spring整合-sqlSessionFactory配置.avi;> MyBatis学习七:spring和MyBatis整合.逆向工程 ...

  4. SVG 学习<七> SVG的路径——path(1)直线命令、弧线命令

    目录 SVG 学习<一>基础图形及线段 SVG 学习<二>进阶 SVG世界,视野,视窗 stroke属性 svg分组 SVG 学习<三>渐变 SVG 学习<四 ...

  5. day 85 Vue学习七之vue-cookie

      Vue学习七之vue-cookie   通过vue如何操作cookie呢 参考链接:https://www.jianshu.com/p/535b53989b39 第一步:安装vue-cookies ...

  6. (转)MyBatis框架的学习(七)——MyBatis逆向工程自动生成代码

    http://blog.csdn.net/yerenyuan_pku/article/details/71909325 什么是逆向工程 MyBatis的一个主要的特点就是需要程序员自己编写sql,那么 ...

  7. Cassandra学习笔记

    CASSANDRA在工作中用过,但是用的项目少,能用却了解的不全面.今天来稍加学习下: http://zqhxuyuan.github.io/2015/10/15/Cassandra-Daily/  ...

  8. Cassandra学习六 一些知识点

    http://www.flyml.net/2016/09/08/cassandra-tutorial-java-api-example/ Cassandra对查询的支持很弱,只支持主键列及索引列的查询 ...

  9. Cassandra学习五 使用Key的正确姿势

    NoSQL一般是反范式的,比如提倡数据冗余,使得不至于写出非常复杂的SQL语句. Cassandra之中一共包含下面5中Key: Primary Key: 用来获取某一行的数据,可以是一列或多列   ...

随机推荐

  1. shell awk命令

    语法: awk '{command}' filename  多个命令以分号分隔. awk 'BEGIN {command1} {command2} END{command3}'  注意:BEGIN , ...

  2. GO学习笔记:struct类型

    Go语言中,也和C或者其他语言一样,我们可以声明新的类型,作为其它类型的属性或字段的容器.例如,我们可以创建一个自定义类型person代表一个人的实体.这个实体拥有属性:姓名和年龄.这样的类型我们称之 ...

  3. Win10/Server2016镜像集成离线补丁

    Win10镜像集成离线补丁 因为正常安装系统后再打补丁比较漫长,可以事先做好打过补丁的iso,备将来使用. 以管理员身份运行cmd,然后通过dism提取.挂载.集成补丁.保存install.wim镜像 ...

  4. Ajax传输对象,集合或数组。

    传输单个对象时: servlet页面 package com.itnba.maya.a; import java.io.IOException; import javax.servlet.Servle ...

  5. SpringCloud教程 | 第十一篇: docker部署spring cloud项目

    版权声明:本文为博主原创文章,欢迎转载,转载请注明作者.原文超链接 ,博主地址:http://blog.csdn.net/forezp. http://blog.csdn.net/forezp/art ...

  6. AutoLayout 使用详细

    1.实际应用中,这Compact,Any,Regular如何运用呢? w:Any h:Any 是我们刚建立工程时候默认选择的,算是一切描述的父类.其他的种类描述都是在此基础上变化的,比如:如果weig ...

  7. 打包发布自己的nodejs包

    下午的时候写了一篇关于一个不成熟的模板引擎的博客,觉得还是不太够,然后就封装了起来,做成了一款开发包.最后为了尝试一下如何发布自己的包,就又完善了一下.做此文以记之. 初衷 说来也不是什么高大上的东西 ...

  8. OpenCV中阈值(threshold)函数: threshold 。

    OpenCV中提供了阈值(threshold)函数: threshold . 这个函数有5种阈值化类型,在接下来的章节中将会具体介绍. 为了解释阈值分割的过程,我们来看一个简单有关像素灰度的图片,该图 ...

  9. pgrep 和 pkill 使用小记

    在停止指定进程时,经常使用如下命令: kill `ps aux | grep -w program_name | grep -v grep | awk '{print $2}'` 使用 pgrep 和 ...

  10. 使用tor实现匿名扫描/SSH登录

    你要做坏事时,最先应该想到匿名.扫描网站/主机,或利用漏洞:甚至在大天朝发帖都有风险,为了防止半夜鬼敲门,我们可以使用tor实现匿名. 如果你不知道tor是什么,看:https://zh.wikipe ...