List of usage examples for org.springframework.data.solr.core.query Field getName
@Nullable String getName();
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(); }