/** * returns a map of simple objects suitable for putting in a SolrQueryResponse header * @see #formatForResponseHeader * @see #parseMap */ public SimpleOrderedMap<String> getSimpleMap() { SimpleOrderedMap<String> entry = new SimpleOrderedMap<String>(); entry.add("type", type.toString()); entry.add(ID, id); entry.add("message", message); return entry; }
@SuppressWarnings("unchecked") public NamedList getStatistics() { NamedList lst = new SimpleOrderedMap(); lst.add("rollbacks", rollbackCommands.get()); lst.add("adds", addCommands.get()); lst.add("deletesById", deleteByIdCommands.get()); lst.add("deletesByQuery", deleteByQueryCommands.get()); lst.add("errors", numErrors.get()); lst.add("cumulative_adds", addCommandsCumulative.get()); lst.add("cumulative_deletesById", deleteByIdCommandsCumulative.get()); lst.add("cumulative_deletesByQuery", deleteByQueryCommandsCumulative.get()); lst.add("cumulative_errors", numErrorsCumulative.get()); return lst; }
public static Map<String,Integer> getChildCounts(SolrResponse response) { //check if there are subdocs if (Objects.nonNull(response.getResponse())) { final Object subDocumentFacetResult = response.getResponse().get("facets"); if (Objects.nonNull(subDocumentFacetResult)) { Map<String,Integer> childCounts = new HashMap<>(); log.debug("Parsing subdocument facet result from JSON "); final int facetCount = (int) ((SimpleOrderedMap) subDocumentFacetResult).get("count"); if (facetCount > 0 && Objects.nonNull(((SimpleOrderedMap) subDocumentFacetResult).get("parent_facet"))) { final List<SimpleOrderedMap> parentDocs = (ArrayList) ((SimpleOrderedMap) ((SimpleOrderedMap) subDocumentFacetResult).get("parent_facet")).get("buckets"); childCounts = parentDocs.stream().collect(Collectors.toMap(p -> (String) p.get("val"), p -> ((Integer) ((SimpleOrderedMap) p.get("children_facet")).get("count")))); } return childCounts; } } return null; }
private static SimpleOrderedMap<Object> getAnalyzerInfo(Analyzer analyzer) { SimpleOrderedMap<Object> aninfo = new SimpleOrderedMap<Object>(); aninfo.add("className", analyzer.getClass().getName()); if (analyzer instanceof TokenizerChain) { SimpleOrderedMap<Object> tokenizer = new SimpleOrderedMap<Object>(); TokenizerChain tchain = (TokenizerChain)analyzer; TokenizerFactory tfac = tchain.getTokenizerFactory(); tokenizer.add("className", tfac.getClass().getName()); tokenizer.add("args", tfac.getArgs()); aninfo.add("tokenizer", tokenizer); TokenFilterFactory[] filtfacs = tchain.getTokenFilterFactories(); SimpleOrderedMap<Map<String, Object>> filters = new SimpleOrderedMap<Map<String, Object>>(); for (TokenFilterFactory filtfac : filtfacs) { Map<String, Object> tok = new HashMap<String, Object>(); String className = filtfac.getClass().getName(); tok.put("className", className); tok.put("args", filtfac.getArgs()); filters.add(className.substring(className.lastIndexOf('.')+1), tok); } if (filters.size() > 0) { aninfo.add("filters", filters); } } return aninfo; }
private static TermFacetResult<String> getTypeFacetResults(QueryResponse response) { final TermFacetResult typeFacetResults = new TermFacetResult(); //term facets if (Objects.nonNull(response.getResponse())) { final SimpleOrderedMap jsonFacetResult = (SimpleOrderedMap) response.getResponse().get("facets"); if (Objects.nonNull(jsonFacetResult)) { for (int i = 0; i < jsonFacetResult.size(); i++) { if (jsonFacetResult.getName(i).equals(Fieldname.TYPE)) { final ArrayList<SimpleOrderedMap> termFacet = ((ArrayList<SimpleOrderedMap>) ((SimpleOrderedMap) jsonFacetResult.get(jsonFacetResult.getName(i))).get("buckets")); termFacet.stream().forEach(f -> typeFacetResults .addFacetValue(new FacetValue<>((String) f.get("val"), ((Integer)f.get("count")).longValue()))); } } } } return typeFacetResults; }
public NamedList asNamedList() { NamedList<Object> m = new SimpleOrderedMap<Object>(); m.add( "time", time ); if( children.size() > 0 ) { for( Map.Entry<String, RTimer> entry : children ) { m.add( entry.getKey(), entry.getValue().asNamedList() ); } } return m; }
Iterator iterator = solrFacets.iterator(); while (iterator.hasNext()) { Map.Entry<String, SimpleOrderedMap> next = (Map.Entry<String, SimpleOrderedMap>) iterator.next(); if (next.getKey().startsWith(SolrQueryParser.CHROM_DENSITY)) { SimpleOrderedMap value = next.getValue(); if (value.get("chromosome") != null) { List<SimpleOrderedMap<Object>> chromBuckets = (List<SimpleOrderedMap<Object>>) ((SimpleOrderedMap) value.get("chromosome")).get("buckets"); for (SimpleOrderedMap<Object> chromBucket: chromBuckets) { String chrom = chromBucket.get("val").toString(); SimpleOrderedMap startMap = (SimpleOrderedMap) chromBucket.get("start"); if (startMap != null) { List<SimpleOrderedMap<Object>> startBuckets = (List<SimpleOrderedMap<Object>>) startMap.get("buckets"); for (int i = startBuckets.size() - 1; i >= 0; i--) { int pos = (int) startBuckets.get(i).get("val"); if (pos > SolrQueryParser.getChromosomeMap().get(chrom)) { startBuckets.remove(i);
public NamedList getStatistics() { NamedList lst = new SimpleOrderedMap(); return lst; } }
public SuggesterResponse(Map<String, NamedList<Object>> suggestInfo) { for (Map.Entry<String, NamedList<Object>> entry : suggestInfo.entrySet()) { SimpleOrderedMap suggestionsNode = (SimpleOrderedMap) entry.getValue().getVal(0); List<SimpleOrderedMap> suggestionListToParse; List<Suggestion> suggestionList = new LinkedList<>(); if (suggestionsNode != null) { suggestionListToParse = (List<SimpleOrderedMap>) suggestionsNode.get(SUGGESTIONS_NODE_NAME); for (SimpleOrderedMap suggestion : suggestionListToParse) { String term = (String) suggestion.get(TERM_NODE_NAME); long weight = (long) suggestion.get(WEIGHT_NODE_NAME); String payload = (String) suggestion.get(PAYLOAD_NODE_NAME); Suggestion parsedSuggestion = new Suggestion(term, weight, payload); suggestionList.add(parsedSuggestion); } suggestionsPerDictionary.put(entry.getKey(), suggestionList); } } }
final SimpleOrderedMap jsonFacetResult = (SimpleOrderedMap) response.getResponse().get("facets"); if (Objects.nonNull(jsonFacetResult)) { for (int i = 0; i < jsonFacetResult.size(); i++) { final String facetName = jsonFacetResult.getName(i); if (jsonFacetResult.getName(i).startsWith("dynamic_")) { final String fieldName = getFieldDescriptorName(searchContext, facetName); FieldDescriptor<?> fieldDesc = factory.getField(fieldName); ((ArrayList<SimpleOrderedMap>) ((SimpleOrderedMap) jsonFacetResult.get(facetName)).get("buckets")); final TermFacetResult<?> facet = new TermFacetResult(termFacet.stream() .map(f -> new FacetValue<>(castForDescriptor(f.get("val"), descriptor, useCase), ((Integer) f.get("count")).longValue())
/** Convert this to a NamedList */ public NamedList<Object> toNamedList() { final SimpleOrderedMap<Object> result = new SimpleOrderedMap<>(); for(Iterator<String> it=getParameterNamesIterator(); it.hasNext(); ) { final String name = it.next(); final String [] values = getParams(name); if(values.length==1) { result.add(name,values[0]); } else { // currently no reason not to use the same array result.add(name,values); } } return result; }
public LogUpdateProcessor(SolrQueryRequest req, SolrQueryResponse rsp, LogUpdateProcessorFactory factory, UpdateRequestProcessor next) { super( next ); this.req = req; this.rsp = rsp; maxNumToLog = factory.maxNumToLog; // TODO: make configurable // TODO: make log level configurable as well, or is that overkill? // (ryan) maybe? I added it mostly to show that it *can* be configurable this.toLog = new SimpleOrderedMap<Object>(); }
public SuggesterResponse(Map<String, NamedList<Object>> suggestInfo) { for (Map.Entry<String, NamedList<Object>> entry : suggestInfo.entrySet()) { SimpleOrderedMap suggestionsNode = (SimpleOrderedMap) entry.getValue().getVal(0); List<SimpleOrderedMap> suggestionListToParse; List<Suggestion> suggestionList = new LinkedList<>(); if (suggestionsNode != null) { suggestionListToParse = (List<SimpleOrderedMap>) suggestionsNode.get(SUGGESTIONS_NODE_NAME); for (SimpleOrderedMap suggestion : suggestionListToParse) { String term = (String) suggestion.get(TERM_NODE_NAME); long weight = (long) suggestion.get(WEIGHT_NODE_NAME); String payload = (String) suggestion.get(PAYLOAD_NODE_NAME); Suggestion parsedSuggestion = new Suggestion(term, weight, payload); suggestionList.add(parsedSuggestion); } suggestionsPerDictionary.put(entry.getKey(), suggestionList); } } }
/** * Convert this object to a SimpleOrderedMap, making it easier to serialize. * @return the equivalent SimpleOrderedMap for this object. */ public SimpleOrderedMap<Object> toMap() { SimpleOrderedMap<Object> map = new SimpleOrderedMap<>(); if (label != null) { map.add(LABEL_KEY, label); } map.add(VALUE_KEY, value); map.add(COUNT_KEY, count); map.add(TOTAL_KEY, getTotal()); if (hierarchy != null && hierarchy.size() > 0) { // Recurse through the child nodes, converting each to a map List<NamedList<Object>> hierarchyList = hierarchy.stream().map(TreeFacetField::toMap).collect(Collectors.toList()); map.add(HIERARCHY_KEY, hierarchyList); } return map; }
public NamedList getStatistics() { NamedList lst = new SimpleOrderedMap(); return lst; }
public static Map<Integer,Integer> getSubdocumentCounts(SolrResponse response) { //check if there are subdocs if (Objects.nonNull(response.getResponse())) { final Object subDocumentFacetResult = response.getResponse().get("facets"); if (Objects.nonNull(subDocumentFacetResult)) { Map<Integer,Integer> childCounts = new HashMap<>(); log.debug("Parsing subdocument facet result from JSON "); final int facetCount = (int) ((SimpleOrderedMap) subDocumentFacetResult).get("count"); if (facetCount > 0 && Objects.nonNull(((SimpleOrderedMap) subDocumentFacetResult).get("childrenCount"))) { final SimpleOrderedMap parentDocs = ((SimpleOrderedMap) ((SimpleOrderedMap) subDocumentFacetResult).get("childrenCount")); final Integer childCount = (Integer) parentDocs.get("count"); final Integer parentCount; if(childCount > 0) { parentCount =(Integer)((SimpleOrderedMap)((List)((SimpleOrderedMap)parentDocs.get("parentFilteredCount")).get("buckets")).get(0)).get("count"); } else { parentCount = 0; } childCounts.put(parentCount, childCount); } return childCounts; } } return null; }
/** Convert this to a NamedList */ public NamedList<Object> toNamedList() { final SimpleOrderedMap<Object> result = new SimpleOrderedMap<Object>(); for(Iterator<String> it=getParameterNamesIterator(); it.hasNext(); ) { final String name = it.next(); final String [] values = getParams(name); if(values.length==1) { result.add(name,values[0]); } else { // currently no reason not to use the same array result.add(name,values); } } return result; } }
@Override public SimpleOrderedMap<T> clone() { ArrayList<Object> newList = new ArrayList<>(nvPairs.size()); newList.addAll(nvPairs); return new SimpleOrderedMap<>(newList); } }
/** * returns a ToleratedUpdateError instance from the data in this Map * @see #getSimpleMap */ public static ToleratedUpdateError parseMap(SimpleOrderedMap<String> data) { final String id = data.get(ID); final String message = data.get("message"); final String t = data.get("type"); if (null == t || null == id || null == message) { throw new SolrException(ErrorCode.SERVER_ERROR, "Map does not represent a ToleratedUpdateError, must contain 'type', 'id', and 'message'"); } try { return new ToleratedUpdateError(CmdType.valueOf(t), id, message); } catch (IllegalArgumentException iae) { throw new SolrException(ErrorCode.SERVER_ERROR, "Invalid type for ToleratedUpdateError: " + t, iae); } }