每当您在具有特定条件的文档上建立索引时,如果条件不再为真,它会自动为该文档取消索引吗?
示例:
index a on Abucket(field) where field2='value'
当我创建索引时,将使用field2='value'
索引Abucket上的所有文档。
但是如果文档更改field2='value2'
会发生什么。然后,将其更改回value1
对于没有field2
字段的文档,这是怎么工作的,我猜这些文档根本没有索引,但是如果以后再添加该字段,它们又会自动索引吗?
而且索引也可以在查询中包含一个复合物吗?类似于WHERE ifmissing(field2, ifnull(bla bla bla))='value2'
答案 0 :(得分:3)
我猜测这些索引根本没有索引,但是如果以后 字段已添加,它们是否会自动编制索引?
是的,即使在indexe的WHERE子句中引用了这些字段,我们也应该正确处理字段更改的情况。
我们还支持索引中WHERE子句的复杂表达式。
但是,如果这是您要去的地方,请允许我提一些警告。索引中WHERE子句的主要用例是将索引限制为某些类型的文档。索引的典型WHERE子句类似于WHERE type = 'airport'
。如果您发现自己要对它们做一些更复杂的事情,那么在继续操作之前,我建议您谨慎些。