Это означает, что когда документ хранится в Couchbase, он помещается в очередь для индексации. Операция записи не ожидает окончания индексации. Представьте себе ситуацию, когда ваше приложение:
- Записывает какой-то документ А, например
{'type': 'invoice', 'foo':'bar', ... etc ... }
- Немедленно выполняет запрос N1QL
SELECT * FROM mybucket WHERE type = 'invoice'
Чрезмерно упрощенное объяснение: документ A будет поставлен в очередь для индексации после шага 1. На шаге 2 N1QL не является ограниченным (по умолчанию SDK / сервер будет не ограничен), и может не возвращаться документ А, потому что он еще не был проиндексирован пока . Если ваша ситуация требует этого, вы можете указать RequestPlus (или AtPlus) вместо NotBounded. Это заставит ваш запрос дождаться завершения индексации перед выполнением запроса.
Пример использования в C # RequestPlus:
var request = QueryRequest.Create("SELECT * FROM mybucket WHERE type = 'invoice'");
request.ScanConsistency(ScanConsistency.RequestPlus);
Хотя это влияет на производительность! RequestPlus будет худшей производительностью, NonBounded будет лучшим, AtPlus будет где-то посередине.
Обратите внимание, что если вы используете доступ по ключу / значению вместо N1QL, вам не нужно беспокоиться об этом. Вы всегда сможете получить доступ к документу по его ключу напрямую, независимо от индексации.
Для получения дополнительной информации: