Example usage for org.springframework.data.solr.core.query Field getName

List of usage examples for org.springframework.data.solr.core.query Field getName

Introduction

In this page you can find the example usage for org.springframework.data.solr.core.query Field getName.

Prototype

@Nullable
String getName();

Source Link

Document

Get the name of the field used in schema.xml of solr server

Usage

From source file:com.lijojacob.mls.productcatalog.index.ProductDocumentServiceImpl.java

private SearchResultDTO processSearchResults(FacetPage<ProductDocument> productDocumentsFacetPage) {
    SearchResultDTO result = new SearchResultDTO();
    DocumentResults documentResults = new DocumentResults();
    documentResults.setResults(productDocumentsFacetPage.getContent());
    documentResults.setTotalPages(productDocumentsFacetPage.getTotalPages());
    result.setDocuments(documentResults);
    if (CollectionUtils.isNotEmpty(productDocumentsFacetPage.getFacetFields())) {
        Map<String, List<Facet>> facetMap = new HashMap<String, List<Facet>>();
        FacetResults facetResults = new FacetResults();
        for (Field facetField : productDocumentsFacetPage.getFacetFields()) {
            if (null != productDocumentsFacetPage.getFacetResultPage(facetField)) {
                List<FacetFieldEntry> facetFieldEntryList = productDocumentsFacetPage
                        .getFacetResultPage(facetField).getContent();
                List<Facet> facets = new ArrayList<Facet>();
                for (FacetFieldEntry facetFieldEntry : facetFieldEntryList) {
                    Facet facet = new Facet();
                    facet.setValue(facetFieldEntry.getValue());
                    facet.setCount(facetFieldEntry.getValueCount());
                    facets.add(facet);// w w w .j av a 2s.c  o m
                }
                facetMap.put(facetField.getName(), facets);
            }
        }
        facetResults.setResults(facetMap);
        result.setFacets(facetResults);
    }
    return result;
}

From source file:org.springframework.data.solr.core.DefaultQueryParser.java

private void processStatsOptions(SolrQuery solrQuery, Query query) {
    StatsOptions statsOptions = query.getStatsOptions();

    if (statsOptions == null || (CollectionUtils.isEmpty(statsOptions.getFields())
            && CollectionUtils.isEmpty(statsOptions.getFacets())
            && CollectionUtils.isEmpty(statsOptions.getSelectiveFacets()))) {
        return;/*  w w w.  j  a v  a 2s. co  m*/
    }

    solrQuery.set(StatsParams.STATS, true);

    for (Field field : statsOptions.getFields()) {
        solrQuery.add(StatsParams.STATS_FIELD, field.getName());

        String selectiveCalcDistinctParam = CommonParams.FIELD + "." + field.getName() + "."
                + StatsParams.STATS_CALC_DISTINCT;
        Boolean selectiveCountDistincts = statsOptions.isSelectiveCalcDistincts(field);

        if (selectiveCountDistincts != null) {
            solrQuery.add(selectiveCalcDistinctParam, String.valueOf(selectiveCountDistincts.booleanValue()));
        }

    }

    for (Field field : statsOptions.getFacets()) {
        solrQuery.add(StatsParams.STATS_FACET, field.getName());
    }

    for (Entry<Field, Collection<Field>> entry : statsOptions.getSelectiveFacets().entrySet()) {

        Field field = entry.getKey();
        String prefix = CommonParams.FIELD + "." + field.getName() + ".";

        String paramName = prefix + StatsParams.STATS_FACET;
        for (Field facetField : entry.getValue()) {
            solrQuery.add(paramName, facetField.getName());
        }

    }

}

From source file:org.springframework.data.solr.core.DefaultQueryParser.java

private void processGroupOptions(SolrQuery solrQuery, Query query) {

    GroupOptions groupOptions = query.getGroupOptions();

    if (groupOptions == null || (CollectionUtils.isEmpty(groupOptions.getGroupByFields())
            && CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())
            && CollectionUtils.isEmpty(groupOptions.getGroupByQueries()))) {
        return;/*from   w w  w.  ja  v a 2s.  c  o m*/
    }

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.set(GroupParams.GROUP_MAIN, groupOptions.isGroupMain());
    solrQuery.set(GroupParams.GROUP_FORMAT, "grouped");

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFields())) {
        for (Field field : groupOptions.getGroupByFields()) {
            solrQuery.add(GroupParams.GROUP_FIELD, field.getName());
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByFunctions())) {
        for (Function function : groupOptions.getGroupByFunctions()) {
            String functionFragment = createFunctionFragment(function, 0);
            setObjectNameOnGroupQuery(query, function, functionFragment);
            solrQuery.add(GroupParams.GROUP_FUNC, functionFragment);
        }
    }

    if (!CollectionUtils.isEmpty(groupOptions.getGroupByQueries())) {
        for (Query groupQuery : groupOptions.getGroupByQueries()) {
            String queryFragment = getQueryString(groupQuery);
            setObjectNameOnGroupQuery(query, groupQuery, queryFragment);
            solrQuery.add(GroupParams.GROUP_QUERY, queryFragment);
        }
    }

    if (groupOptions.getSort() != null) {

        for (Order order : groupOptions.getSort()) {
            solrQuery.add(GroupParams.GROUP_SORT,
                    order.getProperty().trim() + " " + (order.isAscending() ? ORDER.asc : ORDER.desc));
        }
    }

    if (groupOptions.getCachePercent() > 0) {
        solrQuery.add(GroupParams.GROUP_CACHE_PERCENTAGE, String.valueOf(groupOptions.getCachePercent()));
    }

    if (groupOptions.getLimit() != null && groupOptions.getLimit() >= 0) {
        solrQuery.set(GroupParams.GROUP_LIMIT, groupOptions.getLimit());
    }

    if (groupOptions.getOffset() != null && groupOptions.getOffset() >= 0) {
        solrQuery.set(GroupParams.GROUP_OFFSET, groupOptions.getOffset());
    }

    solrQuery.set(GroupParams.GROUP_TOTAL_COUNT, groupOptions.isTotalCount());
    solrQuery.set(GroupParams.GROUP_FACET, groupOptions.isGroupFacets());
    solrQuery.set(GroupParams.GROUP_TRUNCATE, groupOptions.isTruncateFacets());
}

From source file:org.springframework.data.solr.core.DefaultQueryParser.java

/**
 * Append highlighting parameters to {@link SolrQuery}
 * //w  w w.  j  a va2 s  .  co  m
 * @param solrQuery
 * @param query
 */
protected void processHighlightOptions(SolrQuery solrQuery, HighlightQuery query) {
    if (query.hasHighlightOptions()) {
        HighlightOptions highlightOptions = query.getHighlightOptions();
        solrQuery.setHighlight(true);
        if (!highlightOptions.hasFields()) {
            solrQuery.addHighlightField(HighlightOptions.ALL_FIELDS.getName());
        } else {
            for (Field field : highlightOptions.getFields()) {
                solrQuery.addHighlightField(field.getName());
            }
            for (FieldWithHighlightParameters fieldWithHighlightParameters : highlightOptions
                    .getFieldsWithHighlightParameters()) {
                addPerFieldHighlightParameters(solrQuery, fieldWithHighlightParameters);
            }
        }
        for (HighlightParameter option : highlightOptions.getHighlightParameters()) {
            addOptionToSolrQuery(solrQuery, option);
        }
        if (highlightOptions.hasQuery()) {
            solrQuery.add(HighlightParams.Q, getQueryString(highlightOptions.getQuery()));
        }
    }
}

From source file:org.springframework.data.solr.core.DefaultQueryParser.java

protected String createPerFieldOverrideParameterName(Field field, String parameterName) {
    return "f." + field.getName() + "." + parameterName;
}

From source file:org.springframework.data.solr.core.query.Criteria.java

/**
 * Creates a new Criteria for the given field
 * /*w  ww  .  j av  a2s. c  om*/
 * @param field
 */
public Criteria(Field field) {
    Assert.notNull(field, "Field for criteria must not be null");
    Assert.hasText(field.getName(), "Field.name for criteria must not be null/empty");

    this.field = field;
}

From source file:org.springframework.data.solr.core.query.FacetOptions.java

/**
 * Append additional field for faceting//from ww w  . j  ava2  s . c o m
 * 
 * @param field
 * @return
 */
public final FacetOptions addFacetOnField(Field field) {
    Assert.notNull(field, "Cannot facet on null field.");
    Assert.hasText(field.getName(), "Cannot facet on field with null/empty fieldname.");

    this.facetOnFields.add(field);
    return this;
}

From source file:org.springframework.data.solr.core.query.FacetOptions.java

/**
 * Add pivot facet on given {@link Field}s.
 * /*ww w .  j a va 2  s  .  c om*/
 * @param fields
 * @return
 */
public final FacetOptions addFacetOnPivot(Field... fields) {
    Assert.notNull(fields, "Pivot Facets must not be null.");

    for (Field field : fields) {
        Assert.notNull(field, "Cannot facet on null field.");
        Assert.hasText(field.getName(), "Cannot facet on field with null/empty fieldname.");
    }

    List<Field> list = Arrays.asList(fields);
    this.facetOnPivotFields.add(new SimplePivotField(list));
    return this;
}

From source file:org.springframework.data.solr.core.QueryParser.java

private void appendGroupByFields(SolrQuery solrQuery, List<Field> fields) {
    if (CollectionUtils.isEmpty(fields)) {
        return;/*from   w w w  .  j  av a2s  . c  o  m*/
    }

    if (fields.size() > 1) {
        // there is a bug in solj which prevents multiple grouping
        // although available via HTTP call
        throw new InvalidDataAccessApiUsageException(
                "Cannot group on more than one field with current SolrJ API. Group on single field insead");
    }

    solrQuery.set(GroupParams.GROUP, true);
    solrQuery.setParam(GroupParams.GROUP_MAIN, true);

    for (Field field : fields) {
        solrQuery.add(GroupParams.GROUP_FIELD, field.getName());
    }
}

From source file:org.springframework.data.solr.core.QueryParserBase.java

private String getNullsafeFieldName(Field field) {
    if (field == null || field.getName() == null) {
        return "";
    }//from w  w  w .ja v  a  2  s.  c  o  m
    return field.getName();
}