### Question:
MultifacetTopsySearcher extends AbstractMultifacetSearcher<WebContent> { static Set<String> extractTags(String content) { if (StringUtils.isNotEmpty(content)) { Matcher matcher = CONTENT_HASHTAG_PATTERN.matcher(content); LinkedHashSet<String> tags = new LinkedHashSet<>(); while (matcher.find()) { tags.add(matcher.group(1)); } return tags; } return Collections.emptySet(); } MultifacetTopsySearcher(String apiKey);  MultifacetTopsySearcher(Configuration configuration); @Override String getName(); @Override SearchResults<WebContent> search(MultifacetQuery query); @Override boolean isDeprecated(); static final String CONFIG_API_KEY; static final String SEARCHER_NAME; }### Answer:
@Test public void testExtractTags() { String content = "BREAKING: @NTSB says union for #metronorth #engineer \"breaches the party agreement\" by describing what train op told investigators #nbc4ny"; Set<String> tags = MultifacetTopsySearcher.extractTags(content); assertEquals(3, tags.size()); assertTrue(tags.containsAll(Arrays.asList("metronorth", "engineer", "nbc4ny"))); }