Example usage for org.apache.solr.client.solrj.response RangeFacet getName

List of usage examples for org.apache.solr.client.solrj.response RangeFacet getName

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.response RangeFacet getName.

Prototype

public String getName() 

Source Link

Usage

From source file:com.frank.search.solr.core.ResultHelper.java

License:Apache License

/**
 * @param query/*from   w w w . java  2s .  c  om*/
 * @param response
 * @return
 * @since 1.5
 */
static Map<Field, Page<FacetFieldEntry>> convertFacetQueryResponseToRangeFacetPageMap(FacetQuery query,
        QueryResponse response) {
    Assert.notNull(query, "Cannot convert response for 'null', query");

    if (!hasFacets(query, response) || isEmpty(response.getFacetRanges())) {
        return Collections.emptyMap();
    }
    Map<Field, Page<FacetFieldEntry>> facetResult = new HashMap<Field, Page<FacetFieldEntry>>();

    Pageable pageable = query.getFacetOptions().getPageable();
    int initalPageSize = pageable.getPageSize();
    for (RangeFacet<?, ?> rangeFacet : response.getFacetRanges()) {

        if (rangeFacet == null || !StringUtils.hasText(rangeFacet.getName())) {
            continue;
        }

        Field field = new SimpleField(rangeFacet.getName());

        List<FacetFieldEntry> entries;
        long total;
        if (isNotEmpty(rangeFacet.getCounts())) {
            entries = new ArrayList<FacetFieldEntry>(initalPageSize);
            for (RangeFacet.Count count : rangeFacet.getCounts()) {
                entries.add(new SimpleFacetFieldEntry(field, count.getValue(), count.getCount()));
            }
            total = rangeFacet.getCounts().size();
        } else {
            entries = Collections.<FacetFieldEntry>emptyList();
            total = 0;
        }

        facetResult.put(field, new SolrResultPage<FacetFieldEntry>(entries, pageable, total, null));

    }

    return facetResult;
}

From source file:com.nridge.ds.solr.SolrResponseBuilder.java

License:Open Source License

@SuppressWarnings({ "unchecked", "rawtypes" })
private void populateFacet(DataTable aTable, RangeFacet aRangeFacet) {
    DataField schemaField;//w ww .j  av a 2 s.  co  m
    Logger appLogger = mAppMgr.getLogger(this, "populateFacet");

    appLogger.trace(mAppMgr.LOGMSG_TRACE_ENTER);

    DataBag resultBag = mBag;
    String fieldName = aRangeFacet.getName();
    schemaField = resultBag.getFieldByName(fieldName);
    Field.Type fieldType = facetRangeToFieldType(aRangeFacet, schemaField);
    if (Field.isDateOrTime(fieldType)) {
        RangeFacet<Date, Date> facetRangeDate = (RangeFacet<Date, Date>) aRangeFacet;

        aTable.newRow();
        aTable.setValueByName("field_name", fieldName);
        if ((schemaField != null) && (StringUtils.isNotEmpty(schemaField.getTitle())))
            aTable.setValueByName("field_title", schemaField.getTitle());
        else
            aTable.setValueByName("field_title", Field.nameToTitle(fieldName));
        aTable.setValueByName("field_type", Field.typeToString(fieldType));
        Object objectValue = facetRangeDate.getStart();
        if (objectValue != null)
            aTable.setValueByName("field_start", facetRangeDate.getStart());
        objectValue = facetRangeDate.getEnd();
        if (objectValue != null)
            aTable.setValueByName("field_finish", facetRangeDate.getEnd());
        objectValue = facetRangeDate.getGap();
        if (objectValue != null)
            aTable.setValueByName("field_gap", objectValue.toString());
        objectValue = facetRangeDate.getAfter();
        if (objectValue != null)
            aTable.setValueByName("count_after", objectValue.toString());
        objectValue = facetRangeDate.getBefore();
        if (objectValue != null)
            aTable.setValueByName("count_before", objectValue.toString());
        objectValue = facetRangeDate.getBetween();
        if (objectValue != null)
            aTable.setValueByName("count_between", objectValue.toString());
        ArrayList<String> fieldValueList = new ArrayList<>();
        for (RangeFacet.Count rfCount : facetRangeDate.getCounts())
            fieldValueList.add(String.format("%s (%d)", rfCount.getValue(), rfCount.getCount()));
        aTable.setValuesByName("facet_name_count", fieldValueList);
        aTable.addRow();
    } else {
        RangeFacet.Numeric facetRangeNumber = (RangeFacet.Numeric) aRangeFacet;

        aTable.newRow();
        aTable.setValueByName("field_name", fieldName);
        if ((schemaField != null) && (StringUtils.isNotEmpty(schemaField.getTitle())))
            aTable.setValueByName("field_title", schemaField.getTitle());
        else
            aTable.setValueByName("field_title", Field.nameToTitle(fieldName));
        aTable.setValueByName("field_type", Field.typeToString(fieldType));
        Object objectValue = facetRangeNumber.getStart();
        if (objectValue != null)
            aTable.setValueByName("field_start", objectValue.toString());
        objectValue = facetRangeNumber.getEnd();
        if (objectValue != null)
            aTable.setValueByName("field_finish", objectValue.toString());
        objectValue = facetRangeNumber.getGap();
        if (objectValue != null)
            aTable.setValueByName("field_gap", objectValue.toString());
        objectValue = facetRangeNumber.getAfter();
        if (objectValue != null)
            aTable.setValueByName("count_after", objectValue.toString());
        objectValue = facetRangeNumber.getBefore();
        if (objectValue != null)
            aTable.setValueByName("count_before", objectValue.toString());
        objectValue = facetRangeNumber.getBetween();
        if (objectValue != null)
            aTable.setValueByName("count_between", objectValue.toString());
        ArrayList<String> fieldValueList = new ArrayList<>();
        for (RangeFacet.Count rfCount : facetRangeNumber.getCounts())
            fieldValueList.add(String.format("%s (%d)", rfCount.getValue(), rfCount.getCount()));
        aTable.setValuesByName("facet_name_count", fieldValueList);
        aTable.addRow();
    }

    appLogger.trace(mAppMgr.LOGMSG_TRACE_DEPART);
}

From source file:eu.prestoprime.search.util.ResultProcessor.java

License:Open Source License

public static Facets extractFacetsFromResponse(QueryResponse response, Map<P4FacetField, String> facetFilters) {
    // Map for all facetFields with according values from the queryResponse
    Facets facets = new Facets();
    // Put facetValues to this map

    for (FacetField field : response.getFacetFields()) {
        // validate FacetField against P4Schema and get the respective
        // FacetField

        P4FacetField p4Field = P4FacetField.get(field.getName());

        if (field.getValueCount() >= 1 && p4Field != null) {
            Facet facet = new Facet();
            facet.setFacetName(p4Field.getFieldName());
            for (Count facetValue : field.getValues()) {
                if (!facetValue.getName().isEmpty()) {
                    Value value = new Value();
                    value.setCount(facetValue.getCount());
                    value.setTerm(facetValue.getName());

                    // check if this value is already selected
                    boolean isSelected = (facetFilters.get(p4Field) != null
                            && facetFilters.get(p4Field).contains(facetValue.getName()));
                    value.setSelected(isSelected);

                    LOGGER.debug("Facet value: " + facetValue.getName() + " is selected? " + isSelected);

                    // build a filterquery that is used when this facet is
                    // selected
                    String filter = "";
                    if (isSelected) { // deselect
                        String[] singleValues = facetFilters.get(p4Field).replaceAll("\"", "").split("( AND )");
                        LOGGER.debug("Building new filter for deselecting. Starting from: "
                                + facetFilters.get(p4Field));
                        String delim = "";
                        int i = 0;
                        for (String s : singleValues) {
                            LOGGER.debug("Iteration " + (++i) + ": " + s + " eq " + facetValue.getName() + " ? "
                                    + s.equals(facetValue.getName()));
                            if (!s.equals(facetValue.getName())) {
                                LOGGER.debug("No. Append this one -> ");
                                filter += delim + "\"" + s + "\"";
                                delim = " AND ";

                            }/*from   w  w w  .j  a va 2 s .c o  m*/
                            LOGGER.debug("Iteration " + (++i) + ": " + filter);
                        }
                    } else {
                        filter = facetFilters.get(p4Field);
                        LOGGER.debug("Altering old filter for selecting. Starting from: " + filter);
                        if (filter == null || filter.isEmpty()) {
                            filter = "\"" + facetValue.getName() + "\"";
                        } else {
                            filter += " AND \"" + facetValue.getName() + "\"";
                        }
                    }
                    LOGGER.debug("Result filter = " + filter);
                    value.setFilterQuery(filter);
                    facet.getValue().add(value);
                }
            }
            facets.getFacet().add(facet);
        }
    }

    // do the same for rangeFacets
    for (RangeFacet range : response.getFacetRanges()) {
        P4FacetField p4Field = P4FacetField.get(range.getName());

        if (range.getCounts().size() >= 1 && p4Field != null) {
            Facet facet = new Facet();
            facet.setFacetName(p4Field.getFieldName());
            if (p4Field.getAssocField().getType().equals(FieldType.TDATE)) {
                for (RangeFacet.Count count : (List<RangeFacet.Count>) range.getCounts()) {
                    Value value = new Value();
                    value.setTerm(formatDateString(count.getValue()));
                    value.setCount(count.getCount());

                    boolean isSelected = (facetFilters.get(p4Field) != null
                            && !facetFilters.get(p4Field).isEmpty());
                    value.setSelected(isSelected);

                    if (!isSelected) {
                        value.setFilterQuery(SolrQueryUtils.getDateRangeFilter(count.getValue()));
                    } else {
                        value.setFilterQuery("");
                    }

                    facet.getValue().add(value);
                }
            } else {
                // TODO implement for other ranged facets. right now no
                // other fieldTypes used yet...
            }
            facets.getFacet().add(facet);
        }
    }

    return facets;
}

From source file:fr.cnes.sitools.metacatalogue.representation.GeoJsonMDEORepresentation.java

License:Open Source License

private void writeFacetRanges(JsonGenerator jGenerator) throws JsonGenerationException, IOException {

    jGenerator.writeObjectFieldStart("facet_ranges");
    if (this.rangesFacets != null) {
        for (RangeFacet facet : this.rangesFacets) {
            jGenerator.writeObjectFieldStart(facet.getName());
            jGenerator.writeArrayFieldStart("counts");
            if (facet instanceof RangeFacet.Date) {
                RangeFacet.Date facetDate = (RangeFacet.Date) facet;
                for (RangeFacet.Count count : facetDate.getCounts()) {
                    jGenerator.writeString(count.getValue());
                    jGenerator.writeNumber(count.getCount());
                }/*from w  ww .ja va2  s .  c o m*/
                jGenerator.writeEndArray();
                jGenerator.writeStringField("start", formatDate(facetDate.getStart()));
                jGenerator.writeStringField("end", formatDate(facetDate.getEnd()));
                jGenerator.writeStringField("gap", facetDate.getGap());
                writeNumber(jGenerator, "after", facetDate.getAfter());
                writeNumber(jGenerator, "before", facetDate.getBefore());
                writeNumber(jGenerator, "between", facetDate.getBetween());
            }
            if (facet instanceof RangeFacet.Numeric) {
                RangeFacet.Numeric facetNumeric = (RangeFacet.Numeric) facet;
                for (RangeFacet.Count count : facetNumeric.getCounts()) {
                    jGenerator.writeString(count.getValue());
                    jGenerator.writeNumber(count.getCount());
                }
                jGenerator.writeEndArray();
                writeNumber(jGenerator, "start", facetNumeric.getStart());
                writeNumber(jGenerator, "end", facetNumeric.getEnd());
                writeNumber(jGenerator, "gap", facetNumeric.getGap());
                writeNumber(jGenerator, "after", facetNumeric.getAfter());
                writeNumber(jGenerator, "before", facetNumeric.getBefore());
                writeNumber(jGenerator, "between", facetNumeric.getBetween());
            }

            jGenerator.writeEndObject();
        }
    }
    jGenerator.writeEndObject();
}

From source file:org.apache.jackrabbit.core.query.lucene.FacetRow.java

License:Open Source License

public RangeFacet getRangeFacet(String name) {
    if (rangeFacets == null)
        return null;
    for (RangeFacet f : rangeFacets)
        if (f.getName().equals(name))
            return f;
    return null;/* w  ww.jav a 2s  .  co m*/
}

From source file:org.apache.nifi.processors.solr.QuerySolr.java

License:Apache License

private static void addFacetsFromSolrResponseToJsonWriter(final QueryResponse response, final JsonWriter writer)
        throws IOException {
    writer.beginObject();/*from w w  w  . jav a  2  s  .  co m*/
    writer.name("facet_queries");
    writer.beginArray();
    for (final Map.Entry<String, Integer> facetQuery : response.getFacetQuery().entrySet()) {
        writer.beginObject();
        writer.name("facet").value(facetQuery.getKey());
        writer.name("count").value(facetQuery.getValue());
        writer.endObject();
    }
    writer.endArray();

    writer.name("facet_fields");
    writer.beginObject();
    for (final FacetField facetField : response.getFacetFields()) {
        writer.name(facetField.getName());
        writer.beginArray();
        for (final FacetField.Count count : facetField.getValues()) {
            writer.beginObject();
            writer.name("facet").value(count.getName());
            writer.name("count").value(count.getCount());
            writer.endObject();
        }
        writer.endArray();
    }
    writer.endObject();

    writer.name("facet_ranges");
    writer.beginObject();
    for (final RangeFacet rangeFacet : response.getFacetRanges()) {
        writer.name(rangeFacet.getName());
        writer.beginArray();
        final List<Count> list = rangeFacet.getCounts();
        for (final Count count : list) {
            writer.beginObject();
            writer.name("facet").value(count.getValue());
            writer.name("count").value(count.getCount());
            writer.endObject();
        }
        writer.endArray();
    }
    writer.endObject();

    writer.name("facet_intervals");
    writer.beginObject();
    for (final IntervalFacet intervalFacet : response.getIntervalFacets()) {
        writer.name(intervalFacet.getField());
        writer.beginArray();
        for (final IntervalFacet.Count count : intervalFacet.getIntervals()) {
            writer.beginObject();
            writer.name("facet").value(count.getKey());
            writer.name("count").value(count.getCount());
            writer.endObject();
        }
        writer.endArray();
    }
    writer.endObject();
    writer.endObject();
}

From source file:org.emonocot.pager.AbstractPageImpl.java

License:Open Source License

@JsonIgnore
public RangeFacet getRangeFacet(String facetName) {
    for (RangeFacet rangeFacet : queryResponse.getFacetRanges()) {
        if (rangeFacet.getName().equals(facetName)) {
            return rangeFacet;
        }/*ww w.j  a va 2s.  c o m*/
    }
    return null;
}

From source file:org.emonocot.pager.AbstractPageImpl.java

License:Open Source License

/**
 * @return a list of the calculated facet names
 *///w ww  .j ava  2 s. c om
@JsonIgnore
public List<String> getFacetNames() {
    List<String> facetNames = new ArrayList<String>();
    for (FacetField facetField : queryResponse.getFacetFields()) {
        facetNames.add(facetField.getName());
    }
    for (RangeFacet facetRange : queryResponse.getFacetRanges()) {
        facetNames.add(facetRange.getName());
    }
    Collections.sort(facetNames, new FacetNameComparator());
    return facetNames;
}

From source file:org.opencms.jsp.search.result.CmsSearchResultWrapper.java

License:Open Source License

/** Constructor taking the main search form controller and the result list as normally returned.
 * @param controller The main search form controller.
 * @param resultList The result list as returned from OpenCms' embedded Solr server.
 * @param query The complete query send to Solr.
 * @param cms The Cms object used to access XML contents, if wanted.
 * @param exception Search exception, or <code>null</code> if no exception occurs.
 *//* w w  w  .j  a v a  2 s  .c o m*/
@SuppressWarnings("rawtypes")
public CmsSearchResultWrapper(final I_CmsSearchControllerMain controller, final CmsSolrResultList resultList,
        final CmsSolrQuery query, final CmsObject cms, final CmsSearchException exception) {

    m_controller = controller;
    m_solrResultList = resultList;
    m_cmsObject = cms;
    m_exception = exception;
    m_query = query;
    if (resultList != null) {
        convertSearchResults(resultList);
        final long l = resultList.getStart() == null ? 1 : resultList.getStart().longValue() + 1;
        m_start = Long.valueOf(l);
        m_end = resultList.getEnd();
        m_numFound = resultList.getNumFound();
        m_maxScore = resultList.getMaxScore();
        if (resultList.getFacetQuery() != null) {
            Map<String, Integer> originalMap = resultList.getFacetQuery();
            m_facetQuery = new HashMap<String, Integer>(originalMap.size());
            for (String q : resultList.getFacetQuery().keySet()) {
                m_facetQuery.put(removeLocalParamPrefix(q), originalMap.get(q));
            }
        }
        List<RangeFacet> rangeFacets = resultList.getFacetRanges();
        if (null != rangeFacets) {
            m_rangeFacetMap = new HashMap<String, RangeFacet>(rangeFacets.size());
            for (RangeFacet facet : rangeFacets) {
                m_rangeFacetMap.put(facet.getName(), facet);
            }
        }
    } else {
        m_start = null;
        m_end = 0;
        m_numFound = 0;
        m_maxScore = null;
    }
    if (null == m_rangeFacetMap) {
        m_rangeFacetMap = new HashMap<String, RangeFacet>();
    }
}

From source file:org.opencommercesearch.FacetManager.java

License:Apache License

public String getFacetName(RangeFacet facet) {
    String facetName = facet.getName();
    RepositoryItem facetItem = getFacetItem(facet.getName());
    if (facetItem != null) {
        facetName = (String) facetItem.getPropertyValue(FacetProperty.NAME);
    }//from   ww w  .  ja v a2  s  .  co  m
    return facetName;
}