private bool AcceptByStoreFiltering(long reference, int storeLookups, Value[] values) { // Initialize the property cursor scan _read.singleNode(reference, _node); if (!_node.next()) { // This node doesn't exist, therefore it cannot be accepted _property.close(); return(false); } _node.properties(_property); while (storeLookups > 0 && _property.next()) { for (int i = 0; i < _filters.Length; i++) { IndexQuery filter = _filters[i]; if (filter != null && (values == null || values[i] == NO_VALUE) && _property.propertyKey() == filter.PropertyKeyId()) { if (!filter.AcceptsValueAt(_property)) { return(false); } storeLookups--; } } } return(storeLookups == 0); }
private void IndexNode(long id) { if (_visitingNodes) { _read.singleNode(id, _nodeCursor); if (_nodeCursor.next()) { LabelSet labels = _nodeCursor.labels(); if (_schema.isAffected(labels.All())) { _nodeCursor.properties(_propertyCursor); IndexProperties(id); } } } }