private void traverseHighlight(Highlight highlight, IndexFacts.Session indexFacts) { if (highlight == null) return; for (AndItem item : highlight.getHighlightItems().values()) { traverse(item, indexFacts); } }
this.highlightTerms.clear(); for (String index : getHighlightItems().keySet()) { AndItem root = getHighlightItems().get(index); List<WordItem> words = new ArrayList<>(); List<CompositeItem> phrases = new ArrayList<>();
public boolean hasEncodableProperties() { if ( ! ranking.getProperties().isEmpty()) return true; if ( ! ranking.getFeatures().isEmpty()) return true; if ( ranking.getFreshness() != null) return true; if ( model.getSearchPath() != null) return true; if ( model.getDocumentDb() != null) return true; if ( presentation.getHighlight() != null && ! presentation.getHighlight().getHighlightItems().isEmpty()) return true; return false; }
@Override public Result search(Query query, Execution execution) { if (query.properties().getBoolean(DISABLE)) return execution.search(query); IndexFacts.Session indexFacts = execution.context().getIndexFacts().newSession(query); Item newRoot = replaceTerms(query, indexFacts); query.getModel().getQueryTree().setRoot(newRoot); query.trace(getFunctionName(), true, 2); Highlight highlight = query.getPresentation().getHighlight(); if (highlight != null) { Set<String> highlightFields = highlight.getHighlightItems().keySet(); for (String field : highlightFields) { StemMode stemMode = indexFacts.getIndex(field).getStemMode(); if (stemMode != StemMode.NONE) { StemContext context = new StemContext(); context.language = Language.ENGLISH; context.indexFacts = indexFacts; Item newHighlight = scan(highlight.getHighlightItems().get(field), context); highlight.getHighlightItems().put(field, (AndItem)newHighlight); } } } return execution.search(query); }