沙发床索引如何处理索引无效的文档和新的有效文档?

时间:2019-04-15 14:41:13

标签: indexing couchbase n1ql

每当您在具有特定条件的文档上建立索引时,如果条件不再为真,它会自动为该文档取消索引吗?

示例:

index a on Abucket(field) where field2='value'

当我创建索引时,将使用field2='value'索引Abucket上的所有文档。

但是如果文档更改field2='value2'会发生什么。然后,将其更改回value1

对于没有field2字段的文档,这是怎么工作的,我猜这些文档根本没有索引,但是如果以后再添加该字段,它们又会自动索引吗?

而且索引也可以在查询中包含一个复合物吗?类似于WHERE ifmissing(field2, ifnull(bla bla bla))='value2'

1 个答案:

答案 0 :(得分:3)

  

我猜测这些索引根本没有索引,但是如果以后   字段已添加,它们是否会自动编制索引?

是的,即使在indexe的WHERE子句中引用了这些字段,我们也应该正确处理字段更改的情况。

我们还支持索引中WHERE子句的复杂表达式。

但是,如果这是您要去的地方,请允许我提一些警告。索引中WHERE子句的主要用例是将索引限制为某些类型的文档。索引的典型WHERE子句类似于WHERE type = 'airport'。如果您发现自己要对它们做一些更复杂的事情,那么在继续操作之前,我建议您谨慎些。