我有以下示例文档:
{
“_class”: “some.package.Class”,
“creationTime”: 1234567890,
“title”: “title of element”,
“tags”: [ “tag1”, “tag2”, “tag3” ]
}
我现在要使用以下命令查询包含给定2个标签的所有元素:
SELECT * FROM bucket WHERE _class = “some.package.Class”
AND (EVERY t IN [“tag1”, “tag2”] SATISFIES t IN tags END) LIMIT 16
我尝试使用以下方法为此查询创建索引:
CREATE INDEX some_idx_title ON bucket((distinct (array k for k in tags end)))
WHERE (_class = “some.package.Class”)
但是在解释选择查询时,它不会显示。
如何为该查询创建索引?
答案 0 :(得分:1)
基本答案是你不能。当前实现的数组索引不能满足EVERY类型的谓词。它们只能用于ANY和ANY AND EVERY类型的谓词。
有关如何指定数组索引以及它们可用于哪些谓词的更多信息,请参考以下参考:
(这个确切的问题在another forum中的回答也更长一些。)