List of usage examples for org.apache.solr.client.solrj SolrQuery setRows
public SolrQuery setRows(Integer rows)
From source file:fr.paris.lutece.plugins.search.solr.business.SolrSearchEngine.java
License:Open Source License
public String getDocumentHighLighting(String strDocumentId, String terms) { String strDocumentIdPrefixed = SolrIndexerService.getWebAppName() + SolrConstants.CONSTANT_UNDERSCORE + strDocumentId;/*from w w w .j a va 2s .c om*/ String xmlContent = null; SolrClient solrServer = SolrServerService.getInstance().getSolrServer(); SolrQuery query = new SolrQuery(terms); query.setHighlight(true); query.setHighlightSimplePre(SOLR_HIGHLIGHT_PRE); query.setHighlightSimplePost(SOLR_HIGHLIGHT_POST); query.setHighlightFragsize(0); //return all the content, not fragments query.setParam("hl.fl", SolrItem.FIELD_XML_CONTENT); //return only the field xml_content HighLighting query.setFields(SearchItem.FIELD_UID); //return only the field uid query.setRows(1); query.addFilterQuery(SearchItem.FIELD_UID + ":" + strDocumentIdPrefixed); try { QueryResponse response = solrServer.query(query); if (response.getResults().size() == 1) { SolrHighlights highlights = new SolrHighlights(response.getHighlighting()); if (highlights.getHighlights(strDocumentIdPrefixed).getMap().size() > 0) { xmlContent = highlights.getHighlights(strDocumentIdPrefixed).getMap() .get(SolrItem.FIELD_XML_CONTENT).get(0); } } } catch (SolrServerException e) { AppLogService.error(e.getMessage(), e); } catch (IOException e) { AppLogService.error(e.getMessage(), e); } return xmlContent; }
From source file:gr.aueb.service.EmailService.java
public static List<Email> getEmails(List<String> keywords) { String query = getEmailServiceQuery(keywords); SolrQuery solrQuery; solrQuery = new SolrQuery(); if (query.startsWith(" AND")) { query = query.substring(4);// w ww . jav a 2 s.c o m } if (query.startsWith("AND")) { query = query.substring(3); } solrQuery.setQuery(query); if (!query.equals("")) { solrQuery.setHighlight(true).setHighlightSnippets(1).setHighlightSimplePost("</strong>") .setHighlightSimplePre("<strong>"); //set other params as needed solrQuery.setParam("hl.fl", "content_t"); solrQuery.setParam("hl.requireFieldMatch", "true"); } solrQuery.setRows(15); String urlString = "http://195.251.252.8:8983/solr/mail"; //SolrClient server = new HttpSolrClient.Builder(urlString).build(); SolrClient server = new HttpSolrClient(urlString); QueryResponse response = null; try { response = server.query(solrQuery); } catch (Exception e) { System.out.println(e); } SolrDocumentList rs = response.getResults(); long numFound = rs.getNumFound(); int numResultsDisplay = (int) numFound; ArrayList<Email> items = new ArrayList<Email>(); ListIterator<SolrDocument> iter = rs.listIterator(); while (iter.hasNext()) { SolrDocument doc = iter.next(); String id = doc.get("messageId").toString(); String from = doc.get("from").toString(); String sentDate = doc.get("sentDate").toString(); String subject = doc.get("subject").toString(); String content = doc.get("content").toString(); items.add(new Email(id, from, sentDate, subject, content)); } return items; }
From source file:gwap.search.SolrSearchBean.java
License:Open Source License
public void submitQuery() { log.info("Updating Results"); results = null;/* w w w .j av a 2 s. co m*/ SolrQuery solrQuery = generateQuery(); if (solrQuery == null) return; paginationControl.setResultsPerPage(RESULTS_PER_PAGE); solrQuery.setRows(paginationControl.getResultsPerPage()); solrQuery.setStart(paginationControl.getFirstResult()); try { QueryResponse response = solrServer.query(solrQuery, METHOD.POST); results = response.getResults(); paginationControl.setNumResults(results.getNumFound()); dirty = false; log.info("Got #0 results for query '#1'", results.getNumFound(), solrQuery.getQuery()); } catch (SolrException e) { log.info("Could not complete query", e); } catch (SolrServerException e) { log.info("Could not complete query", e); } }
From source file:info.papyri.dispatch.atom.AtomFeedServlet.java
License:Creative Commons License
/** * Assigns the passed parameter values into a SolrQuery object. * /*from www. j a v a 2s . c o m*/ * Note that if any single passed date cannot be parsed, a parse exception * will be thrown and the query abandoned. * * @param dateParams * @param page * @return * @throws ParseException */ SolrQuery buildSolrQuery(EnumMap<TimeParam, String> dateParams, int page, SearchType searchType) throws ParseException { SolrQuery sq = new SolrQuery(); String q = ""; sq.addSortField(searchType.getDateField().name(), SolrQuery.ORDER.desc); sq.setRows(entriesPerPage); sq.setStart((page - 1) * entriesPerPage); for (Map.Entry<TimeParam, String> entry : dateParams.entrySet()) { String rangeString = generateRangeString(entry.getKey(), entry.getValue()); if (!"".equals(q)) q += " AND "; q += searchType.getDateField().name() + ":" + rangeString; } if (q.equals("")) q = searchType.getDateField().name() + ":[* TO *]"; sq.setQuery(q); return sq; }
From source file:io.logspace.hq.core.solr.agent.SolrAgentService.java
License:Open Source License
@SuppressWarnings("unchecked") @Override/* ww w .j av a2s . c o m*/ public AgentActivities getAgentActivities(int start, int count, int durationSeconds, int steps, String sort) { SolrQuery solrQuery = new SolrQuery(ALL_DOCS_QUERY); solrQuery.setRows(0); Date endDate = new Date(); Date startDate = new Date(endDate.getTime() - SECONDS.toMillis(durationSeconds)); solrQuery.addFilterQuery(getTimestampRangeQuery(startDate, endDate)); TermsFacet agentFacet = new TermsFacet(FIELD_GLOBAL_AGENT_ID, FIELD_GLOBAL_AGENT_ID); agentFacet.setOffset(start); agentFacet.setLimit(count); agentFacet.setMincount(0); agentFacet.setNumBuckets(true); agentFacet.setSort(sort); agentFacet.addSubFacet(new RangeFacet(FIELD_TIMESTAMP, FIELD_TIMESTAMP, startDate, endDate, GapUnit.SECONDS, durationSeconds / steps)); solrQuery.set("json.facet", FacetList.toJsonString(agentFacet)); try { AgentActivities result = new AgentActivities(); QueryResponse response = this.solrClient.query(solrQuery, METHOD.POST); Buckets agentBuckets = Buckets.fromResponse(response, FIELD_GLOBAL_AGENT_ID); result.setOffset(start); result.setTotalCount(agentBuckets.getNumBuckets()); int maxHistoryValue = 0; for (NamedList<Object> eachAgentBucket : agentBuckets) { AgentActivity agentActivity = new AgentActivity(); agentActivity.setGlobalAgentId((String) eachAgentBucket.get(VALUE_FACET_NAME)); agentActivity.setEventCount(Buckets.getInt(eachAgentBucket, COUNT_FACET_NAME)); int[] history = new int[steps]; Buckets historyBuckets = Buckets .fromFacet((NamedList<Object>) eachAgentBucket.get(FIELD_TIMESTAMP)); for (int i = 0; i < Math.min(historyBuckets.getBucketCount(), history.length); i++) { NamedList<Object> historyBucket = historyBuckets.getBucket(i); int historyValue = Buckets.getInt(historyBucket, COUNT_FACET_NAME); history[i] = historyValue; maxHistoryValue = Math.max(maxHistoryValue, historyValue); } agentActivity.setHistory(history); result.add(agentActivity); } result.setMaxHistoryValue(maxHistoryValue); return result; } catch (SolrException | SolrServerException | IOException e) { throw new DataRetrievalException("Could not retrieve Agent activities.", e); } }
From source file:io.logspace.hq.core.solr.agent.SolrAgentService.java
License:Open Source License
@Override public Set<String> getEventPropertyNames(String... globalAgentIds) { SolrQuery solrQuery = new SolrQuery(ALL_DOCS_QUERY); solrQuery.setRows(0); StringBuilder globalAgentIdFilterQuery = new StringBuilder(); globalAgentIdFilterQuery.append(FIELD_GLOBAL_AGENT_ID); globalAgentIdFilterQuery.append(":("); for (String eachGlobalAgentId : globalAgentIds) { globalAgentIdFilterQuery.append(escapeSolr(eachGlobalAgentId)); globalAgentIdFilterQuery.append(" OR "); }//from w ww . ja v a 2s . c o m globalAgentIdFilterQuery.setLength(globalAgentIdFilterQuery.length() - 4); globalAgentIdFilterQuery.append(')'); solrQuery.addFilterQuery(globalAgentIdFilterQuery.toString()); solrQuery.setFacet(true); solrQuery.setFacetMinCount(1); solrQuery.addFacetField(FIELD_PROPERTY_ID); try { QueryResponse response = this.solrClient.query(solrQuery); Set<String> result = new TreeSet<>(); for (Count eachCount : response.getFacetField(FIELD_PROPERTY_ID).getValues()) { result.add(eachCount.getName()); } return result; } catch (SolrException | SolrServerException | IOException e) { throw new DataRetrievalException("Failed to retrieve event property names", e); } }
From source file:io.logspace.hq.core.solr.agent.SolrAgentService.java
License:Open Source License
@Override public Suggestion getSuggestion(SuggestionInput input) { TimeTracker timeTracker = new TimeTracker(); SolrQuery solrQuery = new SolrQuery(ALL_DOCS_QUERY); solrQuery.setRows(0); if (!StringUtils.isBlank(input.getText())) { solrQuery.addFilterQuery(FIELD_TOKENIZED_SEARCH_FIELD + ":" + escapeSolr(input.getText()) + "*"); }/* w ww .j a v a2 s . c om*/ addFilterQuery(solrQuery, FIELD_PROPERTY_ID, input.getPropertyId()); addFilterQuery(solrQuery, FIELD_SPACE, input.getSpaceId()); addFilterQuery(solrQuery, FIELD_SYSTEM, input.getSystemId()); solrQuery.setFacetMinCount(1); solrQuery.addFacetField(FIELD_GLOBAL_AGENT_ID); try { Suggestion result = new Suggestion(); QueryResponse response = this.solrClient.query(solrQuery); FacetField globalAgentIdFacetField = response.getFacetField(FIELD_GLOBAL_AGENT_ID); for (Count eachValue : globalAgentIdFacetField.getValues()) { String globalAgentId = eachValue.getName(); result.addAgentDescription(this.getAgentDescription(globalAgentId)); } result.setExecutionTime(timeTracker.getElapsed(MILLISECONDS)); return result; } catch (SolrException | SolrServerException | IOException e) { throw new DataRetrievalException("Failed to create suggestions", e); } }
From source file:io.logspace.hq.core.solr.agent.SolrAgentService.java
License:Open Source License
private AgentDescription loadAgentDescription(String globalAgentId) throws SolrServerException, IOException { SolrQuery query = new SolrQuery(ALL_DOCS_QUERY); query.setRows(0); query.setFilterQueries(FIELD_GLOBAL_AGENT_ID + ":\"" + globalAgentId + "\""); query.setFacetMinCount(1);/*from www .jav a 2 s . c o m*/ query.addFacetField(FIELD_SPACE, FIELD_SYSTEM, FIELD_PROPERTY_ID); QueryResponse response = this.solrClient.query(query); AgentDescription result = new AgentDescription(); result.setGlobalId(globalAgentId); result.setName(IdHelper.getAgentId(globalAgentId)); result.setSpace(this.getFirstFacetValue(response, FIELD_SPACE)); result.setSystem(this.getFirstFacetValue(response, FIELD_SYSTEM)); List<PropertyDescription> propertyDescriptions = new ArrayList<>(); FacetField facetField = response.getFacetField(FIELD_PROPERTY_ID); for (Count eachValue : facetField.getValues()) { propertyDescriptions.add(createPropertyDescription(eachValue.getName())); } Collections.sort(propertyDescriptions); result.setPropertyDescriptions(propertyDescriptions); return result; }
From source file:io.logspace.hq.core.solr.event.SolrEventService.java
License:Open Source License
@Override public Object[] getTimeSeries(TimeSeriesDefinition dataDefinition) { SolrQuery solrQuery = new SolrQuery(ALL_DOCS_QUERY); solrQuery.setRows(0); solrQuery.addFilterQuery(FIELD_GLOBAL_AGENT_ID + ":" + escapeSolr(dataDefinition.getGlobalAgentId())); solrQuery.addFilterQuery(getTimestampRangeQuery(dataDefinition.getTimeWindow())); solrQuery.addFilterQuery(dataDefinition.getPropertyId() + ":*"); for (String eachFilterQuery : this.createFilterQueries(dataDefinition.getFilter())) { solrQuery.addFilterQuery(eachFilterQuery); }//from w ww . j av a2 s . co m solrQuery.set("json.facet", this.createTimeSeriesFacets(dataDefinition)); try { QueryResponse response = this.solrClient.query(solrQuery, METHOD.POST); List<Object> values = new ArrayList<Object>(); Buckets buckets = Buckets.fromResponse(response, FIELD_TIMESTAMP); for (NamedList<Object> eachBucket : buckets) { if (dataDefinition.getAggregate() == Aggregate.count) { values.add(eachBucket.get(COUNT_FACET_NAME)); } else { values.add(eachBucket.get(AGGREGATION_FACET_NAME)); } } return values.toArray(); } catch (SolrException | SolrServerException | IOException e) { throw new DataRetrievalException("Could not retrieve data.", e); } }
From source file:io.logspace.hq.core.solr.event.SolrEventService.java
License:Open Source License
private EventPage retrieve(EventFilter eventFilter, int count, String cursorMark, String sort) { SolrQuery solrQuery = new SolrQuery(ALL_DOCS_QUERY); solrQuery.setRows(count); solrQuery.set(CURSOR_MARK_PARAM, cursorMark); solrQuery.set(SORT, sort);//www. j a va2 s. c o m for (EventFilterElement eachElement : eventFilter) { solrQuery.addFilterQuery(this.createFilterQuery(eachElement)); } try { EventPage result = new EventPage(); QueryResponse response = this.solrClient.query(solrQuery); for (SolrDocument eachSolrDocument : response.getResults()) { result.addEvent(this.createEvent(eachSolrDocument)); } result.setNextCursorMark(response.getNextCursorMark()); result.setTotalCount(response.getResults().getNumFound()); return result; } catch (SolrServerException | IOException | SolrException e) { String message = "Failed to retrieve events."; this.logger.error(message, e); throw EventStoreException.retrieveFailed(message, e); } }