Example usage for org.apache.solr.client.solrj SolrQuery setRows

List of usage examples for org.apache.solr.client.solrj SolrQuery setRows

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj SolrQuery setRows.

Prototype

public SolrQuery setRows(Integer rows) 

Source Link

Usage

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);
    }
}