New to Couchbase Lite iOS and have 350,000 documents in a bucket. These are
split into 4 main categories:
- Locations (60k)
- Dogs (185k)
- Cats (50k)
- Owners (35k)
I'm having real problems with view speed, firstly trying to grab close
locations will take 30 seconds for the first query, and subsequent ones are
fast. However, we can't have the user waiting 30 seconds as the app loads!
The code for this is below:
double lat = 51.504656;
double lon = -0.128299;
CBLView * view = [self.database viewNamed:@"close"];
[view setMapBlock: MAPBLOCK({
if ([doc[@"type"] isEqualToString:@"location"]) {
emit(CBLGeoPointKey([doc[@"lat"] doubleValue], [doc[@"lon"] doubleValue]),
doc[@"name"]);
}
}) version: @"0.0.1"];
CBLQuery * query = [[self.database viewNamed:@"close"] createQuery];
query.boundingBox = (CBLGeoRect){{lat - .005, lon - .005}, {lat + .005, lon
+ .005}};;
query.limit = 10;
CBLQueryEnumerator * rowEnum = [query run:&error];
for (CBLGeoQueryRow * row in rowEnum) {
NSLog(@"%@", row.document[@"name"]);
}
I'm not sure how I can make this any faster. I've tried changing the
indexUpdateMode to "after", but that didn't make any difference.
Also, a quick sub-question: I assume most of the time is from indexing the
database (since subsequent queries are fast), is there any way to
automatically index the database as soon as it is synced?
--
You received this message because you are subscribed to the Google Groups
"Couchbase Mobile" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/mobile-couchbase/d3840448-2555-45bf-9362-3b5e43caef25%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.