[vistaContactos setMapBlock:^(NSDictionary *doc, CBLMapEmitBlock emit) {
if([doc[@"type"] isEqualToString:@"RuteroMedicos"] && [doc[@"estado_contacto"] integerValue] != 4 && [doc[@"estado_contacto"] integerValue] != 2){
NSString *datoTexto = [NSString stringWithFormat:@"%@ %@ %@ %@ %@", doc[@"codigo_contacto"], doc[@"nombres"], doc[@"apellidos"], doc[@"nombre_especialidad"], doc[@"direccion_visita"]];
emit(CBLTextKey(datoTexto), doc);
}
[vistaRuteroMedicosFTS setMapBlock:^(NSDictionary *doc, CBLMapEmitBlock emit) {
if([doc[@"type"] isEqualToString:@"RuteroMedicos"] && [doc[@"estado_contacto"] integerValue] != 4 && [doc[@"estado_contacto"] integerValue] != 2){
NSString *datoTexto = [NSString stringWithFormat:@"%@ %@ %@ %@ %@", doc[@"codigo_contacto"], doc[@"nombres"], doc[@"apellidos"], doc[@"nombre_especialidad"], doc[@"direccion_visita"]];
// Tokenizar y generar keys
NSArray *tokens = [[datoTexto lowercaseString] componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]];
tokens = [tokens filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"SELF != ''"]];
// Por cada key, generar las secuencias posibles y emitir las claves
for(NSString *tok in tokens){
NSInteger inicioTok = 0;
NSInteger longTok = 0;
// "abre" las coincidencias desde el inicio
NSString *emitTok;
for(longTok = 1; longTok < [tok length]; longTok ++){
emitTok = [tok substringWithRange:NSMakeRange(inicioTok, longTok)];
CLSNSLog(@"Token emitido: '%@'", emitTok);
emit(@[emitTok, doc[@"codigo_contacto"]], nil);
}
// "cierra" las coincidencias hasta el fin
for(inicioTok = 0; inicioTok < [tok length]; inicioTok ++){
longTok = [tok length] - inicioTok;
emitTok = [tok substringWithRange:NSMakeRange(inicioTok, longTok)];
CLSNSLog(@"Token emitido: '%@'", emitTok);
emit(@[emitTok, doc[@"codigo_contacto"]], nil);
}
}
}
} reduceBlock:^id(NSArray *keys, NSArray *values, BOOL rereduce) {
CLSNSLog(@"keys: %@", keys[0][1]);
return keys[0][1];
} version:@"2.9"];
We need to enable searching by FullTextSearch, but don't know how to do "partial" word search, so if i have the phrase "The quick brown fox", searching for "uic" should match.