tokenizeJson method Null safety
override
Extracts tokens from the zones in a JSON document for use in
full-text search queries and indexes.
The required parameter zones is the collection of the names of the
zones in document that are to be tokenized.
Returns a List<Token>.
Implementation
@override
Future<List<Token>> tokenizeJson(Map<String, dynamic> document,
[Iterable<Zone>? zones]) async {
final tokens = <Token>[];
if (zones == null || zones.isEmpty) {
final valueBuilder = StringBuffer();
for (final fieldValue in document.values) {
valueBuilder.writeln(fieldValue.toString());
}
final value = valueBuilder.toString();
final source = value.toString();
if (source.isNotEmpty) {
tokens.addAll(await tokenize(source));
}
} else {
zones = zones.toSet();
for (final zone in zones) {
final value = document[zone];
if (value != null) {
final source = value.toString();
if (source.isNotEmpty) {
tokens.addAll(await tokenize(source, zone));
}
}
}
}
return tokens;
}