static L scoredSearch3(S query, Iterable data, O... _) { new MultiMap map; L prepared = scoredSearch_prepare(query); new L searchers; for (S s : prepared) searchers.add(BoyerMooreStringSearch(s)); if (data != null) for (S s : data) { int score = 0; for (BoyerMooreStringSearch searcher : searchers) if (searcher.containedIn(s)) ++score; if (score == 0) continue; map.put(score, s); } ret nValuesFromMultiMapByKeyDesc(optPar maxResults(_, 1000), map); }