0

在 playOrm 自述文件中,列出了以下查询:

//首先,在 Activity.java 上,您将有一个 NoSqlQuery,如下所示 @NoSqlQuery(name="queryByValue", query="PARTITIONS a(:partId) SELECT a FROM TABLE as a "+ "WHERE a.price > :值和 a.numShares < 10")

我知道选择要查询的正确分区是多么容易,但是子句“a.price > :value”是在 CF 列上选择一些东西。即使分区内的行数很少,我是否不需要该列的索引?如何使用 playOrm 创建它?

4

1 回答 1

1

抱歉,有时我需要 1 天才能回复。

PARTITIONS a(:partId) SELECT a FROM TABLE as a "+ "WHERE a.price > :value and a.numShares < 10"

当您说“右分区”时,我假设您的意思是正确的分区而不是左/右。以上是用 JQL 编写的,因此我可以根据该查询将实体的一部分编写为

MyEntity {
  @NoSqlIndexed
  private BigDecimal price;
  @NoSqlIndexed
  private int numShares;

  //other fields
}

注释告诉 playOrm 索引 price 和 numShares 字段。目前,您只能在 WHERE 子句中使用被索引的字段......这可能会在未来随着我们添加更多功能而改变。

所以你不需要创建分区,PlayOrm 会这样做。要稍后创建索引,当前的方法是将@NoSqlIndexed 添加到现有实体,然后映射/减少读取该行然后保存该行.....我们正在努力解决这个问题,这样您就可以运行我们的映射/减少作业以在整个集群中重新索引某些内容。

另外关于你的问题,有些人关闭了 playOrm 基本设置 + playOrm 成熟度

我认为这是有效的

  1. 我刚刚在这里回答了一个类似的入门问题PlayORM 入门
  2. 成熟度问题....PlayOrm 已经有 62 个测试,我们正在生产中使用它。

后来,迪恩

于 2012-09-25T12:54:48.963 回答