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

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

Introduction

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

Prototype

public SolrQuery setQuery(String query) 

Source Link

Usage

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 w w .  j  a  v a  2  s .c  o  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;
    }/* w w w.j  a  v  a2  s  . c  o 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.  ja  va2s.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 ww w  .j av  a2s  .c  o m

        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.kp.ames.web.core.search.SearcherImpl.java

License:Open Source License

public String facet() throws Exception {

    /*/* w  ww .  j av a 2  s .c  o  m*/
     * Create query
     */
    SolrQuery query = new SolrQuery();
    query.setRows(0);

    /*
     * A single facet field is supported
     */
    query.addFacetField(JsonConstants.J_FACET);
    query.setQuery("*");

    /*
     * Retrieve facets from Apache Solr
     */
    QueryResponse response = solrProxy.executeQuery(query);
    FacetField facet = response.getFacetField(JsonConstants.J_FACET);

    /*
     * Evaluate response
     */
    if (facet == null)
        return new JSONArray().toString();

    /*
     * Sort search result
     */
    StringCollector collector = new StringCollector();

    List<Count> values = facet.getValues();
    if (values == null)
        return new JSONArray().toString();

    for (int i = 0; i < values.size(); i++) {

        Count count = values.get(i);
        String name = facet.getName();

        JSONObject jCount = new JSONObject();

        jCount.put(JsonConstants.J_COUNT, count.getCount());

        jCount.put(JsonConstants.J_FIELD, facet.getName());
        jCount.put(JsonConstants.J_VALUE, count.getName());

        collector.put(name, jCount);

    }

    JSONArray jArray = new JSONArray(collector.values());
    return jArray.toString();

}

From source file:de.kp.ames.web.core.search.SearcherImpl.java

License:Open Source License

public String search(String request, String start, String limit) throws Exception {

    /*/*www.jav a 2  s . c  o  m*/
     * Build Apache Solr query
     */
    JSONObject jQuery = new JSONObject(request);
    String term = jQuery.has(JsonConstants.J_TERM) ? jQuery.getString(JsonConstants.J_TERM) : "*";

    String fp = setFacets(jQuery);
    SolrQuery query = new SolrQuery();

    if (fp != null)
        query.addFilterQuery(fp);

    /* 
     * Paging support from Apache Solr
     */
    int s = Integer.valueOf(start);
    int r = Integer.valueOf(limit);

    query.setStart(s);
    query.setRows(r);

    String qs = term + " OR " + SearchConstants.TERMS_FIELD + ":" + term;
    query.setQuery(qs);

    QueryResponse response = solrProxy.executeQuery(query);
    SolrDocumentList docs = response.getResults();

    long total = docs.getNumFound();

    /*
     * Sort search result
     */
    StringCollector collector = new StringCollector();

    Iterator<SolrDocument> iter = docs.iterator();
    while (iter.hasNext()) {

        int pos = -1;

        SolrDocument doc = iter.next();
        JSONObject jDoc = new JSONObject();

        /* 
         * Identifier
         */
        String id = (String) doc.getFieldValue(SearchConstants.S_ID);
        jDoc.put(JsonConstants.J_ID, id);

        /* 
         * Name
         */
        String name = (String) doc.getFieldValue(SearchConstants.S_NAME);
        jDoc.put(JsonConstants.J_NAME, name);

        /* 
         * Source
         */
        String source = (String) doc.getFieldValue(SearchConstants.S_FACET);
        pos = source.lastIndexOf(":");

        jDoc.put(JsonConstants.J_FACET, source.substring(pos + 1));

        /* 
         * Description
         */
        String desc = (String) doc.getFieldValue(SearchConstants.S_DESC);
        desc = (desc == null) ? FncMessages.NO_DESCRIPTION_DESC : desc;

        jDoc.put(JsonConstants.J_DESC, desc);
        collector.put(name, jDoc);

    }

    /*
     * Render result
     */
    JSONArray jArray = new JSONArray(collector.values());
    return renderer.createGrid(jArray, total);

}

From source file:de.unidue.inf.is.ezdl.dlwrapper.wrappers.AbstractSolrWrapper.java

License:Open Source License

@Override
public final StoredDocumentList process(DocumentQuery documentQuery) {
    String solrQueryString = queryConverter.convert(documentQuery.getQuery());

    getLogger().info("Query is: " + solrQueryString);

    SolrQuery query = new SolrQuery();
    query.setIncludeScore(true);//from   w  w w . j  ava 2 s .co m
    query.setRows(getMaxNumberOfResults());
    query.setQuery(solrQueryString);

    try {
        QueryResponse response = server.query(query);
        SolrDocumentList hits = response.getResults();
        StoredDocumentList result = new StoredDocumentList();
        for (int i = 0; (i < hits.size()) && !isHalted(); i++) {
            SolrDocument doc = hits.get(i);
            StoredDocument stored = readDocumentFromSolrIndex(doc);
            result.add(stored);
        }
        if (!isHalted()) {
            return result;
        } else {
            return new StoredDocumentList();
        }
    } catch (SolrServerException e) {
        getLogger().error(e.getMessage(), e);
    }
    return new StoredDocumentList();
}

From source file:de.unidue.inf.is.ezdl.dlwrapper.wrappers.AbstractSolrWrapper.java

License:Open Source License

/**
 * Retrieves Solr document by its id.//from   ww w  . j a  va 2  s. c o  m
 * 
 * @param id
 *            The id
 * @param field
 *            The id field
 * @return The Solr document with the specified id
 */
protected final SolrDocument retrieveSolrDocumentForId(String id, Field field) {
    SolrQuery query = new SolrQuery();
    query.setIncludeScore(true);
    query.setRows(1);
    QueryNodeCompare queryNodeCompare = new QueryNodeCompare(field, Predicate.EQ, id);
    query.setQuery(queryConverter.convert(new DefaultQuery(queryNodeCompare)));
    QueryResponse response;
    try {
        response = server.query(query);
        SolrDocumentList hits = response.getResults();
        if (hits.size() == 1) {
            return hits.get(0);
        }
    } catch (SolrServerException e) {
        getLogger().error(e.getMessage(), e);
    }
    return null;
}

From source file:dhbw.clippinggorilla.external.solr.SOLR.java

public static Article getArticle(int id) {
    if (client == null) {
        setServer();//w w  w  . j a v  a 2 s .c  om
    }
    String q = "id:\"" + Integer.toString(id) + "\"";
    SolrQuery query = new SolrQuery();
    query.setQuery(q);

    try {
        QueryResponse queryResponse = client.query(query);
        List<Article> beans = queryResponse.getBeans(Article.class);
        if (!beans.isEmpty()) {
            return beans.get(0);
        }
    } catch (SolrServerException | IOException e) {
        Log.error("Solr: Can't Query", e);
    }
    return null;
}

From source file:dhbw.clippinggorilla.external.solr.SOLR.java

public static LinkedHashSet<Article> getArticlesFromSolr(Set<String> includedTagsSet,
        Set<String> excludedTagsSet, Map<Source, Boolean> sourcesMap, LocalDateTime date) {
    SolrQuery query = new SolrQuery();

    String include = "";
    String exclude;//from w ww  . j  a  v  a 2 s.c o m
    String sources = "source:\"";

    List<String> includedTags = new ArrayList<>(includedTagsSet);
    if (includedTags.size() > 0) {
        include = "(" + replaceWhitespaces(includedTags.get(0), true) + ")";
        for (int i = 1; i < includedTags.size(); i++) {
            include += " OR " + "(" + replaceWhitespaces(includedTags.get(i), true) + ")";
        }
    }

    List<String> excludedTags = new ArrayList<>(excludedTagsSet);
    if (excludedTags.size() > 0) {
        exclude = "-(" + replaceWhitespaces(excludedTags.get(0), false) + ")";
        for (int i = 1; i < excludedTags.size(); i++) {
            exclude += " AND " + "-(" + replaceWhitespaces(excludedTags.get(i), false) + ")";
        }
        query.addFilterQuery(exclude);
    }

    for (Map.Entry<Source, Boolean> entry : sourcesMap.entrySet()) {
        if (entry.getValue()) {
            sources = sources.concat(entry.getKey().getId() + "\" OR \"");
        }
    }
    sources = sources.substring(0, sources.length() - 5);

    query.setQuery(include);
    query.set("qf", "title^3 description^2 body");
    query.addFilterQuery("publishedAt:[" + date.toString() + " TO NOW]");
    query.addFilterQuery(sources);

    if (client == null) {
        setServer();
    }

    try {
        QueryResponse queryResponse = client.query(query);
        List<Article> response = queryResponse.getBeans(Article.class);
        return new LinkedHashSet<>(response);
    } catch (SolrServerException | IOException e) {
        Log.error("Solr: Can't Query", e);
        return new LinkedHashSet<>();
    }
}