/** * The highlighted fragments. {@code null} if failed to highlight (for example, the field is not stored). */ public Text[] getFragments() { return fragments(); }
private static Optional<String> getHighlightedText(SearchHit hit) { return ofNullable(hit.getHighlightFields()) .flatMap(fields -> ofNullable(fields.get(FIELD_NAME))) .flatMap(field -> ofNullable(field.getFragments())) .flatMap(fragments -> stream(fragments).findFirst()) .map(Text::string); }
public static HighlightField readHighlightField(StreamInput in) throws IOException { HighlightField field = new HighlightField(); field.readFrom(in); return field; }
private static Map<String, HighlightField> parseHighlightFields(XContentParser parser) throws IOException { Map<String, HighlightField> highlightFields = new HashMap<>(); while((parser.nextToken()) != XContentParser.Token.END_OBJECT) { HighlightField highlightField = HighlightField.fromXContent(parser); highlightFields.put(highlightField.getName(), highlightField); } return highlightFields; }
new HighlightField(fieldName, highlightField.fragments()));
public static HighlightField fromXContent(XContentParser parser) throws IOException { ensureExpectedToken(XContentParser.Token.FIELD_NAME, parser.currentToken(), parser::getTokenLocation); String fieldName = parser.currentName(); Text[] fragments = null; XContentParser.Token token = parser.nextToken(); if (token == XContentParser.Token.START_ARRAY) { List<Text> values = new ArrayList<>(); while (parser.nextToken() != XContentParser.Token.END_ARRAY) { values.add(new Text(parser.text())); } fragments = values.toArray(new Text[values.size()]); } else if (token == XContentParser.Token.VALUE_NULL) { fragments = null; } else { throw new ParsingException(parser.getTokenLocation(), "unexpected token type [" + token + "]"); } return new HighlightField(fieldName, fragments); }
when(highlightField.getName()).thenReturn("displayName"); when(highlightField.getFragments()).thenReturn(value);
highlightFields = emptyMap(); } else if (size == 1) { HighlightField field = readHighlightField(in); highlightFields = singletonMap(field.name(), field); } else { Map<String, HighlightField> highlightFields = new HashMap<>(); for (int i = 0; i < size; i++) { HighlightField field = readHighlightField(in); highlightFields.put(field.name(), field);
/** * The name of the field highlighted. */ public String getName() { return name(); }
hlFieldName = percolateQuery.getName() + "_" + entry.getKey(); hit.getHighlightFields().put(hlFieldName, new HighlightField(hlFieldName, entry.getValue().fragments())); } else { hlFieldName = percolateQuery.getName() + "_" + slot + "_" + entry.getKey(); hit.getHighlightFields().put(hlFieldName, new HighlightField(hlFieldName, entry.getValue().fragments()));
return new HighlightField(highlighterContext.fieldName, Text.convertFromStringArray(fragments)); return new HighlightField(highlighterContext.fieldName, new Text[] { new Text(fieldContents.substring(0, end)) });
private static Map<String, HighlightField> parseHighlightFields(XContentParser parser) throws IOException { Map<String, HighlightField> highlightFields = new HashMap<>(); while((parser.nextToken()) != XContentParser.Token.END_OBJECT) { HighlightField highlightField = HighlightField.fromXContent(parser); highlightFields.put(highlightField.getName(), highlightField); } return highlightFields; }
highlightFields = emptyMap(); } else if (size == 1) { HighlightField field = readHighlightField(in); highlightFields = singletonMap(field.name(), field); } else { Map<String, HighlightField> highlightFields = new HashMap<>(); for (int i = 0; i < size; i++) { HighlightField field = readHighlightField(in); highlightFields.put(field.name(), field);
/** * The name of the field highlighted. */ public String getName() { return name(); }
hlFieldName = percolateQuery.getName() + "_" + entry.getKey(); hit.getHighlightFields().put(hlFieldName, new HighlightField(hlFieldName, entry.getValue().fragments())); } else { hlFieldName = percolateQuery.getName() + "_" + slot + "_" + entry.getKey(); hit.getHighlightFields().put(hlFieldName, new HighlightField(hlFieldName, entry.getValue().fragments()));
public String getSnippet(Map<String, HighlightField> highlights, YaCyQuery yq) { if (yq.yacyModifiers.contains("ranking")) { StringBuilder info = new StringBuilder(); for (String t: yq.positiveBag) { info.append(t).append('(').append(analyseToken(t, yq).trim()).append(')').append(' '); } for (String t: yq.negativeBag) { info.append('-').append(t).append('(').append(analyseToken(t, yq).trim()).append(')').append(' '); } return info.toString(); } List<String> description = super.getStrings(WebMapping.description_txt); String snippetDescription = description == null || description.isEmpty() ? "" : description.iterator().next().toString(); String snippetHighlight = highlights == null || highlights.isEmpty() ? "" : highlights.values().iterator().next().fragments()[0].toString(); String snippet = snippetDescription.length() > snippetHighlight.length() ? snippetDescription : snippetHighlight; return snippet; }
return new HighlightField(highlighterContext.fieldName, Text.convertFromStringArray(fragments));
private static Optional<String> getHighlightedText(SearchHit hit) { return ofNullable(hit.getHighlightFields()) .flatMap(fields -> ofNullable(fields.get(FIELD_NAME))) .flatMap(field -> ofNullable(field.getFragments())) .flatMap(fragments -> stream(fragments).findFirst()) .map(Text::string); }
public static HighlightField readHighlightField(StreamInput in) throws IOException { HighlightField field = new HighlightField(); field.readFrom(in); return field; }
private static Map<String, HighlightField> parseHighlightFields(XContentParser parser) throws IOException { Map<String, HighlightField> highlightFields = new HashMap<>(); while((parser.nextToken()) != XContentParser.Token.END_OBJECT) { HighlightField highlightField = HighlightField.fromXContent(parser); highlightFields.put(highlightField.getName(), highlightField); } return highlightFields; }