couchbase 索引如何对索引的无效文档和新的有效文档做出反应?
How do couchbase index react to not valid documents for the index and new valid ones?
每当您在具有特定条件的文档上建立索引时,如果条件不再为真,它会自动为文档取消索引吗?
示例:
index a on Abucket(field) where field2='value'
当我创建索引时,Abucket 上具有 field2='value'
的所有文档都将被索引。
但是如果文档更改 field2='value2'
会发生什么。然后,将其改回 value1
对于没有 field2
字段的文档如何工作,我猜这些文档根本没有编入索引但是话又说回来,如果以后添加该字段,它们会自动编入索引吗?
而且一个索引也可以有一个复杂的where查询吗?类似于 WHERE ifmissing(field2, ifnull(bla bla bla))='value2'
I'm guessing those are simply not indexed but then again, if later the
field is added, are they automatically indexed?
是的,我们应该正确处理字段更改的情况,即使这些字段在 indexe 的 WHERE 子句中被引用。
我们还支持索引中 WHERE 子句的复杂表达式。
但是,如果这是您要去的地方,请允许我提醒您一些注意事项。索引中 WHERE 子句的主要用例是将索引限制为某些类型的文档。索引的典型 WHERE 子句类似于 WHERE type = 'airport'
。如果你发现自己用它们做一些更复杂的事情,我建议你在继续之前谨慎一些。
每当您在具有特定条件的文档上建立索引时,如果条件不再为真,它会自动为文档取消索引吗?
示例:
index a on Abucket(field) where field2='value'
当我创建索引时,Abucket 上具有 field2='value'
的所有文档都将被索引。
但是如果文档更改 field2='value2'
会发生什么。然后,将其改回 value1
对于没有 field2
字段的文档如何工作,我猜这些文档根本没有编入索引但是话又说回来,如果以后添加该字段,它们会自动编入索引吗?
而且一个索引也可以有一个复杂的where查询吗?类似于 WHERE ifmissing(field2, ifnull(bla bla bla))='value2'
I'm guessing those are simply not indexed but then again, if later the field is added, are they automatically indexed?
是的,我们应该正确处理字段更改的情况,即使这些字段在 indexe 的 WHERE 子句中被引用。
我们还支持索引中 WHERE 子句的复杂表达式。
但是,如果这是您要去的地方,请允许我提醒您一些注意事项。索引中 WHERE 子句的主要用例是将索引限制为某些类型的文档。索引的典型 WHERE 子句类似于 WHERE type = 'airport'
。如果你发现自己用它们做一些更复杂的事情,我建议你在继续之前谨慎一些。