3636import org .elasticsearch .common .settings .Setting ;
3737import org .elasticsearch .common .settings .Settings ;
3838import org .elasticsearch .common .text .Text ;
39- import org .elasticsearch .index .mapper .FieldMapper ;
39+ import org .elasticsearch .index .mapper .MappedFieldType ;
4040import org .elasticsearch .search .fetch .FetchPhaseExecutionException ;
4141import org .elasticsearch .search .fetch .FetchSubPhase ;
4242import org .elasticsearch .search .fetch .subphase .highlight .SearchContextHighlight .Field ;
@@ -71,9 +71,9 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
7171 SearchContextHighlight .Field field = highlighterContext .field ;
7272 SearchContext context = highlighterContext .context ;
7373 FetchSubPhase .HitContext hitContext = highlighterContext .hitContext ;
74- FieldMapper mapper = highlighterContext .mapper ;
74+ MappedFieldType fieldType = highlighterContext .fieldType ;
7575
76- if (canHighlight (mapper ) == false ) {
76+ if (canHighlight (fieldType ) == false ) {
7777 throw new IllegalArgumentException ("the field [" + highlighterContext .fieldName +
7878 "] should be indexed with term vector with position offsets to be used with fast vector highlighter" );
7979 }
@@ -87,7 +87,7 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
8787 HighlighterEntry cache = (HighlighterEntry ) hitContext .cache ().get (CACHE_KEY );
8888
8989 try {
90- MapperHighlightEntry entry = cache .mappers .get (mapper );
90+ FieldHighlightEntry entry = cache .fields .get (fieldType );
9191 if (entry == null ) {
9292 FragListBuilder fragListBuilder ;
9393 BaseFragmentsBuilder fragmentsBuilder ;
@@ -97,37 +97,37 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
9797 if (field .fieldOptions ().numberOfFragments () == 0 ) {
9898 fragListBuilder = new SingleFragListBuilder ();
9999
100- if (!forceSource && mapper . fieldType () .stored ()) {
101- fragmentsBuilder = new SimpleFragmentsBuilder (mapper , field .fieldOptions ().preTags (),
100+ if (!forceSource && fieldType .stored ()) {
101+ fragmentsBuilder = new SimpleFragmentsBuilder (fieldType , field .fieldOptions ().preTags (),
102102 field .fieldOptions ().postTags (), boundaryScanner );
103103 } else {
104- fragmentsBuilder = new SourceSimpleFragmentsBuilder (mapper , context ,
104+ fragmentsBuilder = new SourceSimpleFragmentsBuilder (fieldType , context ,
105105 field .fieldOptions ().preTags (), field .fieldOptions ().postTags (), boundaryScanner );
106106 }
107107 } else {
108108 fragListBuilder = field .fieldOptions ().fragmentOffset () == -1 ?
109109 new SimpleFragListBuilder () : new SimpleFragListBuilder (field .fieldOptions ().fragmentOffset ());
110110 if (field .fieldOptions ().scoreOrdered ()) {
111- if (!forceSource && mapper . fieldType () .stored ()) {
111+ if (!forceSource && fieldType .stored ()) {
112112 fragmentsBuilder = new ScoreOrderFragmentsBuilder (field .fieldOptions ().preTags (),
113113 field .fieldOptions ().postTags (), boundaryScanner );
114114 } else {
115- fragmentsBuilder = new SourceScoreOrderFragmentsBuilder (mapper , context ,
115+ fragmentsBuilder = new SourceScoreOrderFragmentsBuilder (fieldType , context ,
116116 field .fieldOptions ().preTags (), field .fieldOptions ().postTags (), boundaryScanner );
117117 }
118118 } else {
119- if (!forceSource && mapper . fieldType () .stored ()) {
120- fragmentsBuilder = new SimpleFragmentsBuilder (mapper , field .fieldOptions ().preTags (),
119+ if (!forceSource && fieldType .stored ()) {
120+ fragmentsBuilder = new SimpleFragmentsBuilder (fieldType , field .fieldOptions ().preTags (),
121121 field .fieldOptions ().postTags (), boundaryScanner );
122122 } else {
123123 fragmentsBuilder =
124- new SourceSimpleFragmentsBuilder (mapper , context , field .fieldOptions ().preTags (),
124+ new SourceSimpleFragmentsBuilder (fieldType , context , field .fieldOptions ().preTags (),
125125 field .fieldOptions ().postTags (), boundaryScanner );
126126 }
127127 }
128128 }
129129 fragmentsBuilder .setDiscreteMultiValueHighlighting (termVectorMultiValue );
130- entry = new MapperHighlightEntry ();
130+ entry = new FieldHighlightEntry ();
131131 if (field .fieldOptions ().requireFieldMatch ()) {
132132 /**
133133 * we use top level reader to rewrite the query against all readers,
@@ -152,7 +152,7 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
152152 cache .fvh = new org .apache .lucene .search .vectorhighlight .FastVectorHighlighter ();
153153 }
154154 CustomFieldQuery .highlightFilters .set (field .fieldOptions ().highlightFilter ());
155- cache .mappers .put (mapper , entry );
155+ cache .fields .put (fieldType , entry );
156156 }
157157 final FieldQuery fieldQuery ;
158158 if (field .fieldOptions ().requireFieldMatch ()) {
@@ -173,12 +173,12 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
173173 // Only send matched fields if they were requested to save time.
174174 if (field .fieldOptions ().matchedFields () != null && !field .fieldOptions ().matchedFields ().isEmpty ()) {
175175 fragments = cache .fvh .getBestFragments (fieldQuery , hitContext .reader (), hitContext .docId (),
176- mapper . fieldType () .name (), field .fieldOptions ().matchedFields (), fragmentCharSize ,
176+ fieldType .name (), field .fieldOptions ().matchedFields (), fragmentCharSize ,
177177 numberOfFragments , entry .fragListBuilder , entry .fragmentsBuilder , field .fieldOptions ().preTags (),
178178 field .fieldOptions ().postTags (), encoder );
179179 } else {
180180 fragments = cache .fvh .getBestFragments (fieldQuery , hitContext .reader (), hitContext .docId (),
181- mapper . fieldType () .name (), fragmentCharSize , numberOfFragments , entry .fragListBuilder ,
181+ fieldType .name (), fragmentCharSize , numberOfFragments , entry .fragListBuilder ,
182182 entry .fragmentsBuilder , field .fieldOptions ().preTags (), field .fieldOptions ().postTags (), encoder );
183183 }
184184
@@ -193,7 +193,7 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
193193 FieldFragList fieldFragList = new SimpleFieldFragList (-1 /*ignored*/ );
194194 fieldFragList .add (0 , noMatchSize , Collections .<WeightedPhraseInfo >emptyList ());
195195 fragments = entry .fragmentsBuilder .createFragments (hitContext .reader (), hitContext .docId (),
196- mapper . fieldType () .name (), fieldFragList , 1 , field .fieldOptions ().preTags (),
196+ fieldType .name (), fieldFragList , 1 , field .fieldOptions ().preTags (),
197197 field .fieldOptions ().postTags (), encoder );
198198 if (fragments != null && fragments .length > 0 ) {
199199 return new HighlightField (highlighterContext .fieldName , Text .convertFromStringArray (fragments ));
@@ -209,9 +209,10 @@ public HighlightField highlight(HighlighterContext highlighterContext) {
209209 }
210210
211211 @ Override
212- public boolean canHighlight (FieldMapper fieldMapper ) {
213- return fieldMapper .fieldType ().storeTermVectors () && fieldMapper .fieldType ().storeTermVectorOffsets ()
214- && fieldMapper .fieldType ().storeTermVectorPositions ();
212+ public boolean canHighlight (MappedFieldType fieldType ) {
213+ return fieldType .storeTermVectors ()
214+ && fieldType .storeTermVectorOffsets ()
215+ && fieldType .storeTermVectorPositions ();
215216 }
216217
217218 private static BoundaryScanner getBoundaryScanner (Field field ) {
@@ -244,7 +245,7 @@ private static BoundaryScanner getBoundaryScanner(Field field) {
244245 }
245246 }
246247
247- private class MapperHighlightEntry {
248+ private class FieldHighlightEntry {
248249 public FragListBuilder fragListBuilder ;
249250 public FragmentsBuilder fragmentsBuilder ;
250251 public FieldQuery noFieldMatchFieldQuery ;
@@ -253,6 +254,6 @@ private class MapperHighlightEntry {
253254
254255 private class HighlighterEntry {
255256 public org .apache .lucene .search .vectorhighlight .FastVectorHighlighter fvh ;
256- public Map <FieldMapper , MapperHighlightEntry > mappers = new HashMap <>();
257+ public Map <MappedFieldType , FieldHighlightEntry > fields = new HashMap <>();
257258 }
258259}
0 commit comments