Utf 8 Cassandra查询shell中有空格的文本值

Utf 8 Cassandra查询shell中有空格的文本值,utf-8,cassandra,cassandra-3.0,Utf 8,Cassandra,Cassandra 3.0,我在尝试查询数据库时遇到问题,我的cassandra驱动程序脚本如下: const query = 'CREATE TABLE IF NOT EXISTS test.RestaurantMenuItems ' + '(id UUID, restaurantId varchar, menuName text, menuCategoryNames text, menuItemName text, menuItemDescription text, menuItemPrice decimal, P

我在尝试查询数据库时遇到问题,我的cassandra驱动程序脚本如下:

const query = 'CREATE TABLE IF NOT EXISTS test.RestaurantMenuItems ' +
  '(id UUID, restaurantId varchar, menuName text, menuCategoryNames text, menuItemName text, menuItemDescription text, menuItemPrice decimal, PRIMARY KEY (id))';
return client.execute(query);
我不知道如何查询所涉及的空格


使用该模式,您只能在
id
上进行选择,而不能在restaurantId id上进行选择。要满足该查询,C*必须从每个节点读取整个数据集。如果这是一个查询,您可能希望生成如下表:

CREATE TABLE IF NOT EXISTS test.items_by_restaurant (
  restaurant_id varchar,
  menu_name text,
  menu_category_name text,
  menu_item_name text,
  menu_item_description text,
  menu_item_price decimal,
  PRIMARY KEY ((restaurantId), menu_name, menu_category_name, menu_item_name)
);

使用该模式,您只能在
id
上进行选择,而不能在restaurantId id上进行选择。要满足该查询,C*必须从每个节点读取整个数据集。如果这是一个查询,您可能希望生成如下表:

CREATE TABLE IF NOT EXISTS test.items_by_restaurant (
  restaurant_id varchar,
  menu_name text,
  menu_category_name text,
  menu_item_name text,
  menu_item_description text,
  menu_item_price decimal,
  PRIMARY KEY ((restaurantId), menu_name, menu_category_name, menu_item_name)
);

根据您的屏幕截图,这不是一个带有空格的文本问题。如果在文本中添加空格,它将与其他字符一样被视为一个字符。正如@Chris前面提到的,您正在使用一个不是分区键或没有索引的列进行查询。您需要在查询中使用“允许筛选”来获取不推荐的数据。尝试在要查询的列上创建索引

create index on restaurantmenuitems (restaurantid) ;

我正在附加一个屏幕截图

根据您的屏幕截图,这不是带有空格的文本问题。如果在文本中添加空格,它将与其他字符一样被视为一个字符。正如@Chris前面提到的,您正在使用一个不是分区键或没有索引的列进行查询。您需要在查询中使用“允许筛选”来获取不推荐的数据。尝试在要查询的列上创建索引

create index on restaurantmenuitems (restaurantid) ;

我正在附加一个屏幕截图

我对此没有意见,但我只是想知道为什么shell命令不会将空格“”作为空格来读取。如果我在没有空格的情况下查询任何其他文本值,它将查询并返回我需要的所有内容。架构和查询是导致错误的原因,而不是空格。我对此没有意见,但我只是想知道为什么shell命令不会将空格“”读作空格。如果我在没有空格的情况下查询任何其他文本值,它将查询并返回我需要的所有内容。架构和查询是导致错误的原因,而不是空格。