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:au.org.intersect.dms.catalogue.db.SolrIndexFacade.java

License:Open Source License

/**
 * Returns all datasets owned by the user matching specified full text search query
 * /*from ww w .  j a v  a  2  s  .co m*/
 * @param username
 *            username of the owner in DMS system
 * @param userProjects
 *            list of project codes from booking system this username belongs to
 * @param query
 *            full text search query
 * @param startIndex
 *            index of the first dataset to display on the curect page
 * @param pageSize
 *            max number of datasets to display on each page
 * @return datasets of this user (one page)
 */
public DatasetSearchResult findDatasets(String username, List<Long> projects, String query, int startIndex,
        int pageSize) {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setFields(ID);
    solrQuery.setStart(startIndex);
    solrQuery.setRows(pageSize);
    solrQuery.setSortField(ID, ORDER.asc);
    StringBuilder queryString = new StringBuilder();
    if (query == null || "".equals(query)) {
        queryString.append("dataset.metadata_t:*");
    } else {
        queryString.append(query);
    }
    queryString.append(" AND (dataset.owner_s:").append(username);

    String projectQuery = buildProjectCriteria(projects);
    if (!projectQuery.isEmpty()) {
        queryString.append(" OR ").append(projectQuery);
    }
    queryString.append(")");

    solrQuery.setQuery(queryString.toString());
    QueryResponse solrResponse = DbDataset.search(solrQuery);
    SolrDocumentList docs = solrResponse.getResults();

    List<Dataset> datasets = convertSolrDocuments2Datasets(docs);

    DatasetSearchResult result = new DatasetSearchResult();
    result.setDatasets(datasets);
    result.setTotalSize(docs != null ? docs.getNumFound() : 0);
    return result;
}

From source file:brooklyn.entity.nosql.solr.SolrJSupport.java

License:Apache License

public Iterable<SolrDocument> getDocuments() throws Exception {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");

    return server.query(solrQuery).getResults();
}

From source file:cn.edu.pku.lib.dataverse.SolrSearchServiceBean.java

public long getDatasetCount() throws SearchException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");
    solrQuery.setFilterQueries(SearchFields.TYPE + ":datasets", SearchFields.PUBLICATION_STATUS + ":Published");
    solrQuery.setStart(0);/*from  w  w w.j  a  va  2  s .  co  m*/
    solrQuery.setRows(0);
    QueryResponse queryResponse = null;
    try {
        queryResponse = solrServer.query(solrQuery);
        return queryResponse.getResults().getNumFound();
    } catch (HttpSolrServer.RemoteSolrException | SolrServerException ex) {
        logger.log(Level.INFO, null, ex);
        throw new SearchException("Internal Dataverse Search Engine Error", ex);
    }
}

From source file:cn.edu.pku.lib.dataverse.SolrSearchServiceBean.java

public long getDataverseCount() throws SearchException {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setQuery("*:*");
    solrQuery.setFilterQueries(SearchFields.TYPE + ":dataverses",
            SearchFields.PUBLICATION_STATUS + ":Published");
    solrQuery.setStart(0);//from ww  w.  j av a2  s.  c  o  m
    solrQuery.setRows(0);
    QueryResponse queryResponse = null;
    try {
        queryResponse = solrServer.query(solrQuery);
        return queryResponse.getResults().getNumFound();
    } catch (HttpSolrServer.RemoteSolrException | SolrServerException ex) {
        logger.log(Level.INFO, null, ex);
        throw new SearchException("Internal Dataverse Search Engine Error", ex);
    }
}

From source file:cn.edu.pku.lib.dataverse.SolrSearchServiceBean.java

public SolrSearchResult searchDataverseByName(String query, Locale locale) throws SearchException {
    boolean isZh = locale.getLanguage().equals("zh");
    SolrQuery solrQuery = new SolrQuery();
    StringBuilder queryStr = new StringBuilder();
    query = ClientUtils.escapeQueryChars(query);
    queryStr.append("(");
    queryStr.append(SearchFields.NAME);//from   w  w w  .j av  a 2 s .co  m
    queryStr.append(":");
    queryStr.append(query);
    queryStr.append(" OR ");
    queryStr.append(SearchFields.NAME_ZH);
    queryStr.append(":");
    queryStr.append(query);
    queryStr.append(")");
    solrQuery.setQuery(queryStr.toString());
    solrQuery.setFilterQueries(SearchFields.TYPE + ":dataverses",
            SearchFields.PUBLICATION_STATUS + ":Published");
    if (isZh) {
        solrQuery.setFields(SearchFields.ENTITY_ID, SearchFields.NAME_ZH, SearchFields.DATAVERSE_AFFILIATION_ZH,
                SearchFields.DESCRIPTION_ZH);
    } else {
        solrQuery.setFields(SearchFields.ENTITY_ID, SearchFields.NAME, SearchFields.DATAVERSE_AFFILIATION,
                SearchFields.DESCRIPTION);
    }
    logger.log(Level.INFO, "Solr query:{0}", solrQuery);
    solrQuery.setRows(100);
    QueryResponse queryResponse = null;
    SolrSearchResult result = new SolrSearchResult();
    try {
        queryResponse = solrServer.query(solrQuery);
    } catch (HttpSolrServer.RemoteSolrException ex) {
        logger.log(Level.INFO, null, ex);
        result.setTotal(0);
        result.setResults(Collections.EMPTY_LIST);
        return result;
    } catch (SolrServerException ex) {
        throw new SearchException("Internal Dataverse Search Engine Error", ex);
    }
    SolrDocumentList docs = queryResponse.getResults();
    docs.getNumFound();
    Iterator<SolrDocument> iter = docs.iterator();
    List<Dataverse> dataverses = new ArrayList<>();
    while (iter.hasNext()) {
        SolrDocument solrDocument = iter.next();
        Dataverse dataverse = new Dataverse();
        if (isZh) {
            dataverse.setId((Long) solrDocument.getFieldValue(SearchFields.ENTITY_ID));
            dataverse.setNameZh((String) solrDocument.getFieldValue(SearchFields.NAME_ZH));
            dataverse.setAffiliationZh(
                    (String) solrDocument.getFieldValue(SearchFields.DATAVERSE_AFFILIATION_ZH));
            dataverse.setDescriptionZh((String) solrDocument.getFieldValue(SearchFields.DESCRIPTION_ZH));
        } else {
            dataverse.setId((Long) solrDocument.getFieldValue(SearchFields.ENTITY_ID));
            dataverse.setName((String) solrDocument.getFieldValue(SearchFields.NAME));
            dataverse.setAffiliation((String) solrDocument.getFieldValue(SearchFields.DATAVERSE_AFFILIATION));
            dataverse.setDescription((String) solrDocument.getFieldValue(SearchFields.DESCRIPTION));
        }
        dataverses.add(dataverse);
    }
    result.setResults(dataverses);
    result.setTotal((int) docs.getNumFound());
    return result;
}

From source file:com.aboutdata.service.bean.SearchServiceImpl.java

/**
 * ? //from   www .j  ava  2 s.c o m
 *
 * @param keyword
 * @param pageable
 * @return
 */
@Override
public Page<PhotosModel> search(String keyword, Pageable pageable) {
    SolrQuery query = new SolrQuery();
    query.setQuery("tags:(" + keyword + ")  OR title:(" + keyword + ")");
    try {
        //?
        query.setStart((pageable.getPageNumber() - 1) * pageable.getPageSize());
        query.setRows(pageable.getPageSize());
        //?
        QueryResponse rsp = solrServer.query(query);
        //?
        SolrDocumentList docs = rsp.getResults();
        List<PhotosModel> models = new ArrayList<PhotosModel>();
        for (SolrDocument solrDocument : docs) {
            String id = solrDocument.getFieldValue("id").toString();
            String title = solrDocument.getFieldValue("title").toString();
            String large = solrDocument.getFieldValue("large").toString();
            String medium = solrDocument.getFieldValue("medium").toString();
            String thumbnail = solrDocument.getFieldValue("thumbnail").toString();
            String source = solrDocument.getFieldValue("source").toString();
            String member_id = solrDocument.getFieldValue("member_id").toString();
            String member_User_name = solrDocument.getFieldValue("member_name").toString();

            //?? ??idusername
            MemberModel member = new MemberModel();
            member.setId(member_id);
            member.setUsername(member_User_name);

            String wallhaven = solrDocument.getFieldValue("wallhaven").toString();
            String create_date = solrDocument.getFieldValue("create_date").toString();
            String modify_date = solrDocument.getFieldValue("modify_date").toString();

            String tags = solrDocument.getFieldValue("tags").toString();

            Set<Tag> tagSet = tagService.getTagsFromString(tags);

            PhotosModel model = new PhotosModel();
            model.setId(id);
            model.setTitle(title);
            model.setLarge(large);
            model.setMedium(medium);
            model.setThumbnail(thumbnail);
            model.setSource(source);

            model.setWallhaven(wallhaven);
            //model.setCreateDate(new Date());
            // model.setModifyDate(new DateTime(modify_date).toDate());

            model.setMember(member);
            //?tag
            List<TagModel> tagList = TagDTO.getTagModelsDTO(tagSet);
            model.setTags(tagList);

            models.add(model);
        }
        Page<PhotosModel> result = new PageImpl<PhotosModel>(models, pageable, docs.getNumFound());
        return result;
    } catch (SolrServerException ex) {
        logger.error("build index error {}", ex);
    }
    return null;
}

From source file:com.bindez.nlp.extract.ngram.corpus.ExtractWord.java

public List<String> query() throws SolrServerException {
    List<String> result = new ArrayList<String>();
    server = new MyanmarCorpusSolrServer().getSolrServer();

    SolrQuery query = new SolrQuery();
    query.setQuery("*:*");
    //query.add("fl","fl:totaltermfreq(content,"+word+")");
    query.setRows(Integer.MAX_VALUE);
    QueryResponse response = server.query(query);
    SolrDocumentList results = response.getResults();
    long numFound = results.getNumFound();
    System.out.println(numFound);
    for (SolrDocument result1 : results) {
        String word = result1.getFieldValue("id").toString();
        result.add(word);//from w ww.  ja  va  2 s .com

    }

    return result;

}

From source file:com.cmart.DB.DBQuery.java

License:Open Source License

/**
 * Searches the Solr server for itemIDs that contain the given text are should be present on the currently viewed page.
 * If no text is passed, we will search for any items
 * @param text The text that should be searched for
 * @param page The page number the users is looking at
 * @param itemsPP The maz number of items that should be returned
 * @param sortCol How the items should be sorted
 * @param sortDec If the data should be sorted ascending or descending
 * @return/*w w w .jav a 2 s . c om*/
 */
public ArrayList<Long> getTextItemsSolr(String text, int page, int itemsPP, int sortCol, Boolean sortDec) {
    ArrayList<Long> results = new ArrayList<Long>();

    if (page < 0 || itemsPP <= 0 || sortDec == null)
        return results;

    // If no text is passed, search for anything
    if (text == null || text.trim().equals(""))
        text = "*";

    //TODO: OR and AND brackets
    // Setup the search query
    SolrQuery query = new SolrQuery();
    StringBuilder queryText = new StringBuilder();
    queryText.append("name:");
    queryText.append(text);
    queryText.append(" OR description:");
    queryText.append(text);
    queryText.append(" AND endDate:[NOW TO *]");
    queryText.append("&start=");
    queryText.append(page * itemsPP);
    queryText.append("&rows=");
    queryText.append(itemsPP);
    queryText.append("&fl=id");

    // Set how the data should be sorted
    switch (sortCol) {
    case 0:
        query.addSortField("endDate", sortDec ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc);
        break;
    case 1:
        query.addSortField("currentBid", sortDec ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc);
        break;
    case 2:
        query.addSortField("endDate", sortDec ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc);
        break;
    default:
        query.addSortField("endDate", sortDec ? SolrQuery.ORDER.desc : SolrQuery.ORDER.asc);
        break;
    }

    query.setQuery(queryText.toString());

    // Send the query to the server and get the itemIDs
    QueryResponse rsp;
    try {
        rsp = SOLR_SERVER.query(query);
        Iterator<SolrDocument> iter = rsp.getResults().iterator();

        while (iter.hasNext()) {
            SolrDocument resultDoc = iter.next();

            String id = (String) resultDoc.getFieldValue("id");
            if (id != null)
                results.add(Long.valueOf(id));
        }
    } catch (SolrServerException e) {
        e.printStackTrace();
    }

    return results;
}

From source file:com.cmart.DB.DBQuery.java

License:Open Source License

/**
 * Removes expired items from Solr, then calls to have them moved in the database
 * @return The number of items moved//from   ww  w .  j  a va2  s .co  m
 * @throws Exception
 */
public long moveEndedItems() throws Exception {
    if (GlobalVars.SOLR_ENABLED) {
        SolrQuery query = new SolrQuery();
        StringBuilder queryText = new StringBuilder();
        queryText.append("endDate:[* TO NOW]");
        queryText.append("&fl=id");

        query.setQuery(queryText.toString());

        QueryResponse rsp;
        try {
            rsp = SOLR_SERVER.query(query);

            //SolrDocumentList docsr = rsp.getResults();

            Iterator<SolrDocument> iter = rsp.getResults().iterator();

            while (iter.hasNext()) {
                SolrDocument resultDoc = iter.next();

                String id = (String) resultDoc.getFieldValue("id");
                if (id != null)
                    this.deleteFromSolr(id);
            }
        } catch (SolrServerException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    return moveEndedItemsDB();
}

From source file:com.comm.sr.common.solr.SolrQueryGenerator.java

@Override
public SolrQuery generateFinalQuery(SolrCommonQuery query_) {
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.setParam("collection", query_.getCollectionName());
    SubQuery query = query_.getSubQuery();
    if (query == null) {
        return solrQuery;
    }/*from   www  . j a  v a2s .  c om*/
    StringBuffer solrQueryBuffer = new StringBuffer();
    makeFinalSolrQuery(query, solrQueryBuffer);

    int pageNum = query_.getPageNum();
    if (pageNum < 1) {
        // default first page
        pageNum = 1;
    } else {
        pageNum = query_.getPageNum();
    }
    List<SortItem> sortItems = query_.getSortItems();
    if (sortItems == null) {
        sortItems = Lists.newArrayList();
    }
    for (String functionQueryString : query_.getFunctionQuerysList()) {

        solrQueryBuffer.append("_query_:\"{!func}" + functionQueryString + "\"" + " AND ");

    }
    if (solrQueryBuffer.toString().contains("AND")) {

        int and = solrQueryBuffer.lastIndexOf("AND");
        solrQueryBuffer.replace(and, and + 3, "");
    }
    if (solrQueryBuffer.toString().trim().length() == 0) {
        solrQueryBuffer.append("*:*");
    }
    for (SortItem sortItem : sortItems) {
        String fieldName = sortItem.getFieldName();
        String order = sortItem.getSort();

        if (order == null) {
            LOGGER.info("ingore sort fieldName:" + fieldName + ", please configure it.");
            continue;
        }
        if (order.trim().equals("asc")) {
            solrQuery.setSort(fieldName, SolrQuery.ORDER.asc);
        }
        if (order.trim().equals("desc")) {
            solrQuery.addSort(fieldName, SolrQuery.ORDER.desc);

        }

    }

    for (String fl : query_.getFls()) {
        solrQuery.addField(fl);

    }
    int pageSize = query_.getPageSize();
    solrQuery.add("start", String.valueOf((pageNum - 1) * pageSize));
    solrQuery.add("rows", String.valueOf(pageSize));

    // if have distance query
    // fq=_query_:%22{!geofilt}%22&sfield=location&pt=45.15,-93.85&d=50000&sort=geodist()%20asc&fl=score,geodist(),location
    String location = query_.getLocationPoint();
    Double distance = query_.getDistance();

    if (location != null && distance != null) {
        solrQuery.add("d", distance.toString());
        solrQuery.add("pt", location);
        solrQuery.add("sfield", "location");
        solrQuery.add("fq", "_query_:{!geofilt}");
        solrQuery.addSort("geodist()", SolrQuery.ORDER.asc);

    }
    LOGGER.info(solrQueryBuffer.toString());
    solrQuery.setQuery(solrQueryBuffer.toString());

    return solrQuery;
}