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

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

Introduction

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

Prototype

public SolrQuery setStart(Integer start) 

Source Link

Usage

From source file:ddf.catalog.source.solr.SolrMetacardClient.java

License:Open Source License

protected SolrQuery getSolrQuery(QueryRequest request, SolrFilterDelegate solrFilterDelegate)
        throws UnsupportedQueryException {
    solrFilterDelegate.setSortPolicy(request.getQuery().getSortBy());
    SolrQuery query = filterAdapter.adapt(request.getQuery(), solrFilterDelegate);

    // Solr does not support outside parenthesis in certain queries and throws EOF exception.
    String queryPhrase = query.getQuery().trim();
    if (queryPhrase.matches("\\(\\s*\\{!.*\\)")) {
        query.setQuery(queryPhrase.replaceAll("^\\(\\s*|\\s*\\)$", ""));
    }//from  w w w  .  j  ava 2 s  . c  o  m

    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Prepared Query: {}", query.getQuery());
        if (query.getFilterQueries() != null && query.getFilterQueries().length > 0) {
            LOGGER.debug("Filter Queries: {}", Arrays.toString(query.getFilterQueries()));
        }
    }

    if (request.getQuery().getPageSize() < 1) {
        query.setRows(Integer.MAX_VALUE);
    } else {
        query.setRows(request.getQuery().getPageSize());
    }

    /* Start Index */
    if (request.getQuery().getStartIndex() < 1) {
        throw new UnsupportedQueryException("Start index must be greater than 0");
    }

    // Solr is 0-based
    query.setStart(request.getQuery().getStartIndex() - 1);

    return query;
}

From source file:ddf.catalog.source.solr.SolrMetacardClientImpl.java

License:Open Source License

protected SolrQuery postAdapt(QueryRequest request, SolrFilterDelegate filterDelegate, SolrQuery query)
        throws UnsupportedQueryException {
    if (LOGGER.isDebugEnabled()) {
        LOGGER.debug("Prepared Query: {}", query.getQuery());
        if (query.getFilterQueries() != null && query.getFilterQueries().length > 0) {
            LOGGER.debug("Filter Queries: {}", Arrays.toString(query.getFilterQueries()));
        }/*from w  w  w.  j a va  2  s  . c  o  m*/
    }

    if (request.getQuery().getPageSize() < 1) {
        //TODO: Needs to pass in something else.
        query.setRows(Integer.MAX_VALUE);
    } else {
        query.setRows(request.getQuery().getPageSize());
    }

    /* Start Index */
    if (request.getQuery().getStartIndex() < 1) {
        throw new UnsupportedQueryException("Start index must be greater than 0");
    }

    // Solr is 0-based
    query.setStart(request.getQuery().getStartIndex() - 1);

    setSortProperty(request, query, filterDelegate);

    return query;
}

From source file:de.dlr.knowledgefinder.webapp.webservice.solr.query.AbstractSolrQueryFactory.java

License:Apache License

private void setStartForSolrQuery(SolrQuery solrQuery, String start) {
    try {//from w w w.ja v  a2s.  co  m
        int startInt = Integer.parseInt(start);
        if (startInt >= 0) {
            solrQuery.setStart(startInt);
        }
    } catch (NumberFormatException e) {
    }

}

From source file:de.fatalix.book.importer.SolrHandler.java

License:Open Source License

public static QueryResponse searchSolrIndex(SolrServer solr, String queryString, int rows, int startOffset)
        throws SolrServerException {
    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);/*from  w w w . ja va2s. c om*/

    query.setRows(rows);
    query.setStart(startOffset);
    QueryResponse rsp = solr.query(query);
    return rsp;
}

From source file:de.fatalix.bookery.bl.solr.SolrHandler.java

License:Open Source License

public QueryResponse searchSolrIndex(String queryString, String fields, int rows, int startOffset)
        throws SolrServerException {
    SolrServer solr = null;//from   w w  w.  ja v a  2s  .  c o m
    try {
        solr = bookeryService.getSolrConnection();
    } catch (IOException ex) {
        throw new SolrServerException(ex.getMessage());
    }
    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);
    query.setRows(rows);
    query.setStart(startOffset);

    query.setFields(fields);
    QueryResponse rsp = solr.query(query);
    return rsp;
}

From source file:de.fatalix.bookery.bl.solr.SolrHandler.java

License:Open Source License

public QueryResponse searchSolrIndexSorted(String queryString, String fields, int rows, int startOffset,
        String sortField) throws SolrServerException {
    SolrServer solr = null;/*from www . jav  a  2  s  . c om*/
    try {
        solr = bookeryService.getSolrConnection();
    } catch (IOException ex) {
        throw new SolrServerException(ex.getMessage());
    }
    SolrQuery query = new SolrQuery();
    query.setQuery(queryString);
    query.setRows(rows);
    query.setStart(startOffset);
    query.setSort(sortField, SolrQuery.ORDER.desc);
    query.setFields(fields);
    QueryResponse rsp = solr.query(query);
    return rsp;
}

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;
    }//from  w ww.  j  a v a2 s . c om
    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   ww  w  . ja v a 2 s .  c om*/
    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.common.BookSearchLayout.java

License:Open Source License

public void searchBooks(SolrQuery query, boolean reset) {
    try {/*ww w.  jav a  2 s .co m*/
        String user = SecurityUtils.getSubject().getPrincipals().toString();
        this.query = query;
        if (reset) {
            resultLayout.removeAllComponents();
        }
        query.setStart(resultLayout.getComponentCount());
        QueryResponse queryResponse = presenter.searchBooks(query, user);

        if (reset) {
            resultText.setValue(queryResponse.getResults().getNumFound() + " Ergebnisse mit \""
                    + appHeader.getSearchText() + "\" gefunden.");
        }

        List<BookEntry> bookEntries = queryResponse.getBeans(BookEntry.class);

        for (BookEntry bookEntry : bookEntries) {
            resultLayout.addComponent(createBookCoverLayout(bookEntry));
        }
        showMore.setEnabled(queryResponse.getResults().getNumFound() > resultLayout.getComponentCount());

    } catch (SolrServerException ex) {
        Notification.show(ex.getMessage(), Notification.Type.WARNING_MESSAGE);
        logger.error(ex, ex);
    }

}

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

License:Open Source License

@Override
public void enter(ViewChangeListener.ViewChangeEvent event) {
    try {//from  w w w . j  a v a2  s  . co  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);
    }
}