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

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

Introduction

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

Prototype

public SolrQuery setSort(SortClause sortClause) 

Source Link

Document

Replaces the current sort information with a single sort clause

Usage

From source file:bamboo.trove.rule.RuleChangeUpdateManager.java

License:Apache License

private SolrQuery createQuery(String query) {
    SolrQuery q = new SolrQuery("*:*");
    // TODO: Should we add a request handler to the solr cluster to get metrics
    // on the volume and/or performance of these searches in their own bucket?
    q.setFilterQueries(query);/*from ww  w.  jav  a 2 s . c  o  m*/
    q.setFields(SOLR_FIELDS);
    q.setSort(SortClause.asc(SolrEnum.ID.toString()));
    q.setRows(solrReadSize);
    return q;
}

From source file:de.fatalix.bookery.bl.WatchListService.java

License:Open Source License

public List<BookEntry> getAllBooks(List<WatchList> watchList) throws SolrServerException {
    if (watchList.isEmpty()) {
        return Collections.EMPTY_LIST;
    }//  w  ww  .  j  a v  a2 s.co  m
    String searchString = "id:(";
    for (WatchList watchListItem : watchList) {
        searchString = searchString + "\"" + watchListItem.getBookId() + "\",";
    }
    searchString = searchString.substring(0, searchString.length() - 1) + ")";

    SolrQuery query = new SolrQuery();
    query.setRows(20);
    query.setStart(0);
    query.setQuery(searchString);
    query.setSort(SolrQuery.SortClause.asc("author"));
    query.setFields(SolrSearchUtil.DEFAULT_FIELDS);

    return bookService.searchBooks(query).getBeans(BookEntry.class);

}

From source file:de.fatalix.bookery.bl.WatchListService.java

License:Open Source License

public SolrQuery getSolrQuery(List<WatchList> watchList) {
    if (watchList.isEmpty()) {
        return null;
    }/*from  w ww.j  a v  a 2  s  .  co m*/
    String searchString = "id:(";
    for (WatchList watchListItem : watchList) {
        searchString = searchString + "\"" + watchListItem.getBookId() + "\",";
    }
    searchString = searchString.substring(0, searchString.length() - 1) + ")";

    SolrQuery query = new SolrQuery();
    query.setRows(20);
    query.setStart(0);
    query.setQuery(searchString);
    query.setSort(SolrQuery.SortClause.asc("author"));
    query.setFields(SolrSearchUtil.DEFAULT_FIELDS);
    return query;
}

From source file:de.fatalix.bookery.view.home.HomeView.java

License:Open Source License

@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
    try {//  w w  w  . j  a  v  a  2  s  .  c o m
        bookCount.setValue("Aktuell sind " + presenter.getBookCount() + " Bcher in der Bookery");

        String searchString = SolrSearchUtil.generateSearchString("");

        SolrQuery query = new SolrQuery();
        query.setRows(6);
        query.setStart(0);
        query.setQuery(searchString);
        query.setSort(SolrQuery.SortClause.desc("likes"));
        query.setFields(SolrSearchUtil.DEFAULT_FIELDS);

        QueryResponse response = presenter.searchBooks(query);
        mostLikedLane.loadLane("Beliebteste Bcher", response.getBeans(BookEntry.class),
                SearchView.id + "/likes");

        query.setSort(SolrQuery.SortClause.desc("downloadcount"));
        response = presenter.searchBooks(query);
        mostLoadedLane.loadLane("Meist geladene Bcher", response.getBeans(BookEntry.class),
                SearchView.id + "/downloads");

        searchString = SolrSearchUtil
                .addNewBooksSearchString(SecurityUtils.getSubject().getPrincipal().toString(), searchString);
        query.setQuery(searchString);
        query.setSort(SolrQuery.SortClause.asc("author"));
        response = presenter.searchBooks(query);
        newBooksLane.loadLane("Neue Bcher", response.getBeans(BookEntry.class),
                SearchView.id + "/auhtor/true");

        query = presenter.getWatchListQuery(SecurityUtils.getSubject().getPrincipal().toString());
        if (query != null) {
            query.setRows(6);
            response = presenter.searchBooks(query);
            watchListLane.loadLane("Deine Merkliste", response.getBeans(BookEntry.class), WatchListView.id);
        } else {
            watchListLane.loadLane("Deine Merkliste", Collections.EMPTY_LIST, WatchListView.id);
        }

    } catch (SolrServerException ex) {
        logger.error(ex, ex);
    }
}

From source file:de.fatalix.bookery.view.search.SearchView.java

License:Open Source License

@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
    SolrQuery.SortClause sortClause = SolrQuery.SortClause.asc("author");

    String searchString = SolrSearchUtil.generateSearchString(appHeader.getSearchText());

    String[] params = event.getParameters().split("/");
    if (params.length > 0) {
        String sortParameter = params[0];
        switch (sortParameter) {
        case "author":
            sortClause = SolrQuery.SortClause.asc("author");
            break;
        case "likes":
            sortClause = SolrQuery.SortClause.desc("likes");
            break;
        case "downloads":
            sortClause = SolrQuery.SortClause.desc("downloadcount");
            break;
        }/*from w  w  w .  ja va2  s  .c  om*/

        if (params.length > 1) {
            String viewer = SecurityUtils.getSubject().getPrincipal().toString();
            searchString = SolrSearchUtil.addNewBooksSearchString(viewer, searchString);
        }
    }
    SolrQuery query = new SolrQuery();
    query.setRows(20);
    query.setStart(0);
    query.setQuery(searchString);
    query.setSort(sortClause);
    query.setFields(SolrSearchUtil.DEFAULT_FIELDS);
    searchLayout.searchBooks(query, true);
}

From source file:de.fhg.iais.cortex.nodestore.searcher.NodeSearcherImpl.java

License:Apache License

@Override
public SolrDocumentList getHierarchyNodes(String ingestId, String providerId) {
    StringBuilder querySb = new StringBuilder(INGEST_ID + ":\"" + ingestId + "\" AND " + PROVIDER_ID + ":");
    if ("*".equals(providerId)) {
        querySb.append(providerId);//  w  ww  .jav  a  2 s  .  c om
    } else {
        querySb.append("\"" + providerId + "\"");
    }
    SolrQuery query = new SolrQuery(querySb.toString());
    query.setSort(SortClause.create(POSITION, SolrQuery.ORDER.asc));
    query.setStart(0);
    query.setRows(Integer.MAX_VALUE);

    try {
        QueryResponse response = this.solrServer.query(query);
        return response.getResults();
    } catch (SolrServerException e) {
        throw new NodeStoreException(
                "Could not retrieve nodes for ingest " + ingestId + " and provider " + providerId, e);
    }
}

From source file:de.fhg.iais.cortex.nodestore.searcher.NodeSearcherImpl.java

License:Apache License

@Override
public SolrDocumentList getHierarchyChildren(String id, Query filterQuery) {
    SolrQuery childQuery = new SolrQuery(PARENT + ":\"" + id + "\"");
    if (!Strings.isNullOrEmpty(filterQuery.getQuery()) && !filterQuery.getQuery().equals(Query.ALL_QUERY)) {
        childQuery.addFilterQuery(filterQuery.getQuery());
    }/*from ww  w.  ja v  a2  s . co  m*/
    childQuery.setStart(filterQuery.getOffset());
    childQuery.setRows(filterQuery.getRows());
    childQuery.setSort(SortClause.create(POSITION, SolrQuery.ORDER.asc));

    try {
        QueryResponse response = this.solrServer.query(childQuery);
        return response.getResults();
    } catch (SolrServerException e) {
        throw new NodeStoreException("Could not retrieve the node with id " + id, e);
    }
}

From source file:de.hebis.it.hds.gnd.out.AutorityRecordFileWriter.java

License:Open Source License

/**
 * Loop over all entries in the repository to write them to the output file
 *//*from   www.ja  va2 s  .  c o m*/
private void listAllEntries() {
    String cursorMark = "*";
    String nextCursorMark = null;
    QueryResponse rsp = null;
    SolrQuery query = new SolrQuery("id:*");
    query.setRows(Integer.valueOf(config.getProperty("StepSizeForExport", "100")));
    query.setSort(SortClause.asc("id"));
    do {
        // start with '*' in the first iteration, then use the last position
        if (nextCursorMark != null) {
            cursorMark = nextCursorMark;
        }
        // use the last position as new start value.
        query.set("cursorMark", new String[] { cursorMark });
        if (LOG.isTraceEnabled()) {
            LOG.trace(query.toString());
        }
        // execute the query
        try {
            rsp = server.query(query);
            if (rsp.getStatus() != 0)
                throw new SolrServerException("Responsestatus: " + rsp.getStatus());
        } catch (SolrServerException | IOException e) {
            e.printStackTrace();
            throw new RuntimeException("The index can't eval \"" + query.toString() + "\".", e);
        }
        nextCursorMark = rsp.getNextCursorMark();
        // get the results of partial results
        List<AuthorityBean> partialResults = rsp.getBeans(AuthorityBean.class);
        if (LOG.isTraceEnabled())
            LOG.trace(partialResults.size() + " records in this packet");
        // loop over the results
        for (AuthorityBean entry : partialResults) {
            if (LOG.isTraceEnabled())
                LOG.trace("Bearbeite:  " + entry.id);
            printOut(entry);
            if ((maxCount != Integer.MAX_VALUE) && (count >= maxCount))
                return; // optional exit for debug purposes
        }
        out.flush();
    } while (!cursorMark.equals(nextCursorMark));
}

From source file:net.yacy.search.index.ErrorCache.java

License:Open Source License

public ErrorCache(final Fulltext fulltext) {
    this.fulltext = fulltext;
    this.cache = new LinkedHashMap<String, CollectionConfiguration.FailDoc>();
    // concurrently fill stack with latest values
    new Thread() {
        @Override/*from w w w  .j ava 2s  .  c o m*/
        public void run() {
            final SolrQuery params = new SolrQuery();
            params.setParam("defType", "edismax");
            params.setStart(0);
            params.setRows(1000);
            params.setFacet(false);
            params.setSort(
                    new SortClause(CollectionSchema.last_modified.getSolrFieldName(), SolrQuery.ORDER.desc));
            params.setFields(CollectionSchema.id.getSolrFieldName());
            params.setQuery(
                    CollectionSchema.failreason_s.getSolrFieldName() + AbstractSolrConnector.CATCHALL_DTERM);
            params.set(CommonParams.DF, CollectionSchema.id.getSolrFieldName()); // DisMaxParams.QF or CommonParams.DF must be given
            SolrDocumentList docList;
            try {
                docList = fulltext.getDefaultConnector().getDocumentListByParams(params);
                if (docList != null)
                    for (int i = docList.size() - 1; i >= 0; i--) {
                        SolrDocument doc = docList.get(i);
                        String hash = (String) doc.getFieldValue(CollectionSchema.id.getSolrFieldName());
                        cache.put(hash, null);
                    }
            } catch (IOException e) {
                ConcurrentLog.logException(e);
            }
        }
    }.start();
}

From source file:net.yacy.search.index.ErrorCacheFiller.java

License:Open Source License

/**
 * Fills the error cache with recently failed document hashes found in the index
 *//*from   ww  w .  j a v  a2 s .  c  om*/
@Override
public void run() {
    final SolrQuery params = new SolrQuery();
    params.setParam("defType", "edismax");
    params.setStart(0);
    params.setRows(1000);
    params.setFacet(false);
    params.setSort(new SortClause(CollectionSchema.load_date_dt.getSolrFieldName(), SolrQuery.ORDER.desc)); // load_date_dt = faildate
    params.setFields(CollectionSchema.id.getSolrFieldName());
    params.setQuery(CollectionSchema.failreason_s.getSolrFieldName() + AbstractSolrConnector.CATCHALL_DTERM);
    params.set(CommonParams.DF, CollectionSchema.id.getSolrFieldName()); // DisMaxParams.QF or CommonParams.DF must be given
    SolrDocumentList docList;
    try {
        docList = this.sb.index.fulltext().getDefaultConnector().getDocumentListByParams(params);
        if (docList != null)
            for (int i = docList.size() - 1; i >= 0; i--) {
                SolrDocument doc = docList.get(i);
                String hash = (String) doc.getFieldValue(CollectionSchema.id.getSolrFieldName());
                cache.putHashOnly(hash);
            }
    } catch (IOException e) {
        ConcurrentLog.logException(e);
    }
}