List of usage examples for org.apache.solr.common.params SolrParams getFieldParam
public String getFieldParam(String field, String param)
From source file:com.o19s.solr.swan.highlight.SwanHighlighter.java
License:Apache License
private SolrFragmentsBuilder getSolrFragmentsBuilder(String fieldName, SolrParams params) { String fb = params.getFieldParam(fieldName, HighlightParams.FRAGMENTS_BUILDER); SolrFragmentsBuilder solrFb = fragmentsBuilders.get(fb); if (solrFb == null) { throw new SolrException(SolrException.ErrorCode.BAD_REQUEST, "Unknown fragmentsBuilder: " + fb); }/*from w w w. j a v a2 s .c om*/ return solrFb; }
From source file:com.o19s.solr.swan.highlight.SwanHighlighter.java
License:Apache License
private FragListBuilder getFragListBuilderOverride(String fieldName, SolrParams params) { FragListBuilder fragListBuilder;/*from w w w.j ava2s . co m*/ String fb = params.getFieldParam(fieldName, HighlightParams.FRAG_LIST_BUILDER).toLowerCase(); if (fb.equals("single")) { fragListBuilder = new SingleFragListBuilder(); } else { fragListBuilder = new com.o19s.solr.swan.highlight.SimpleFragListBuilder(); } return fragListBuilder; }
From source file:com.o19s.solr.swan.highlight.SwanHighlighter.java
License:Apache License
private void alternateField(NamedList docSummaries, SolrParams params, Document doc, String fieldName) { String alternateField = params.getFieldParam(fieldName, HighlightParams.ALTERNATE_FIELD); if (alternateField != null && alternateField.length() > 0) { IndexableField[] docFields = doc.getFields(alternateField); List<String> listFields = new ArrayList<String>(); for (IndexableField field : docFields) { if (field.binaryValue() == null) listFields.add(field.stringValue()); }/*from w ww. java 2 s.com*/ String[] altTexts = listFields.toArray(new String[listFields.size()]); if (altTexts != null && altTexts.length > 0) { Encoder encoder = getEncoder(fieldName, params); int alternateFieldLen = params.getFieldInt(fieldName, HighlightParams.ALTERNATE_FIELD_LENGTH, 0); List<String> altList = new ArrayList<String>(); int len = 0; for (String altText : altTexts) { if (alternateFieldLen <= 0) { altList.add(encoder.encodeText(altText)); } else { altList.add(len + altText.length() > alternateFieldLen ? encoder.encodeText(altText.substring(0, alternateFieldLen - len)) : encoder.encodeText(altText)); len += altText.length(); if (len >= alternateFieldLen) break; } } docSummaries.add(fieldName, altList); } } }