Project

General

Profile

« Previous | Next » 

Revision 786696e3

Added by Andreas Müller over 10 years ago

merge trunk into cdm3.3 branch

View differences:

cdmlib-services/src/main/java/eu/etaxonomy/cdm/api/service/search/SearchResultBuilder.java
197 197
        return searchResults;
198 198
    }
199 199

  
200
    
201
    /**
202
     * {@inheritDoc}
203
     *
204
     */
205
    public  List<DocumentSearchResult> createResultSet(TopDocs topDocs, String[] highlightFields) throws CorruptIndexException, IOException {
206

  
207
        List<DocumentSearchResult> searchResults = new ArrayList<DocumentSearchResult>();
208

  
209
        if(topDocs == null){
210
            return searchResults;
211
        }
212

  
213
        SearchResultHighligther highlighter = null;
214
        if(highlightFields  != null && highlightFields.length > 0){
215
            highlighter = new SearchResultHighligther();
216
        }
217

  
218
        for (ScoreDoc scoreDoc : topDocs.scoreDocs) {
219

  
220
        	String cdmEntityId = null;
221
        	DocumentSearchResult searchResult = new DocumentSearchResult();
222

  
223
        	Document document = luceneSearch.getSearcher().doc(scoreDoc.doc);
224
        	searchResult.addDoc(document);
225

  
226
        	searchResult.setScore(scoreDoc.score);
227
        	searchResult.setMaxScore(scoreDoc.score);
228
            // add highlight fragments
229
            if(highlighter != null){
230
                Map<String, String[]> fieldFragmentMap = null;
231
                for(Document doc: searchResult.getDocs()){
232
                    fieldFragmentMap = merge(fieldFragmentMap, highlighter.getFragmentsWithHighlightedTerms(luceneSearch.getAnalyzer(), query, highlightFields, doc, fragmentNumber, fragmentSize));
233
                }
234
                searchResult.setFieldHighlightMap(fieldFragmentMap);
235
            }
236

  
237
            // finally add the final result to the list
238
            searchResults.add(searchResult);
239
        }
240

  
241
        return searchResults;
242
    }
200 243
    /**
201 244
     * @param base
202 245
     * @param add

Also available in: Unified diff