!7 sclass SearchResult { S snippetID; int occurrences; } cmodule FullTextSnippetSearch > DynTableWithInput2 { start { } void calc { S query = upper(input); SS data = cast dm_requireAndCall("#1028945/CacheAllSnippets", 'getData); new L out; time "Full-Text Search" { fOr ping (S snippetID, text : data) if (contains(text, query)) { new SearchResult r; r.snippetID = snippetID; r.occurrences = countOccurrences(text, query); out.add(r); } } ret out; BoyerMooreStringSearch_upper search = new("Boyer"); print(nChars(totalStringLength(values(map)))); LS result = null; repeat 10 { time "Search" { //result = keysWithValueThat(map, text -> containsIC(text, "Boyer")); result = keysWithValueThat(map, text -> contains(text, "BOYER")); //result = keysWithValueThat(map, text -> search.containedIn(text)); } } print(result); } }