0

是否有可能使用注释@Query 在关闭临时标志的情况下执行参数化 N1QL 查询?

即对于给定的查询:

@Query("#{#n1ql.selectEntity} WHERE #{#n1ql.filter} and author = $author")
List<Comment> getCommentsByAuthor(@Param("author") String author);

如果不是,是否有任何其他方法可以强制 couchbase 在注释查询中使用二级索引(在此示例中为作者字段的索引)?

4

1 回答 1

1

你似乎混合了一些东西:

  • 参数化查询将与@Query您的代码段中的注释一起使用。文档中提到了它(在本节的第一个警告块下方)

  • N1QL 二级索引应由 N1QL 自动拾取,具体取决于语句。这里的微妙之处在于n1ql.filter。SDC 需要将此类查询限制为异构存储桶中的正确文档集。

  • adhoc是别的东西:它是关于准备好的陈述。SDC 不使用该功能,它只会生成具有 adhoc 默认值的 N1QL 查询(true据我所知)。

如果您已经记录了此注释产生的查询并在其上运行 EXPLAIN 以有效地看到索引没有被拾取,也许尝试反转 WHERE 子句中的两个表达式?

于 2017-02-07T09:26:20.553 回答