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

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

Introduction

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

Prototype

public SolrQuery() 

Source Link

Usage

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   ww w  .  j ava  2  s.c  o  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 w  ww.  ja v  a2 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);//  w ww . j  a v  a 2s  .  co  m

    }

    return result;

}

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

@Override
public TermResult call() throws Exception {
    TermResult result = new TermResult();
    HttpSolrServer tfServer = this.server; //SolrServer.getSolrServer();

    SolrQuery query = new SolrQuery();
    query.set("q", "word:" + term);
    query.add("fl", "fl:totaltermfreq(word," + term + ")");
    QueryResponse response = server.query(query);
    SolrDocumentList results = response.getResults();
    for (SolrDocument result1 : results) {
        String count = result1.getFieldValue("fl").toString();
        result.setTerm(term);//from w  w  w  .j  a v a2 s .co m
        result.setFrequency(Long.parseLong(count));

    }

    return result;
}

From source file:com.bindez.nlp.extract.ngram.term_frequency.TermFrequency.java

public List<Word> query(Set<String> words) throws SolrServerException {
    List<Word> result = new ArrayList<Word>();
    server = new SolrServer().getSolrServer();
    for (String word : words) {
        SolrQuery query = new SolrQuery();
        query.set("q", "content:" + word);
        query.add("fl", "fl:totaltermfreq(content," + word + ")");
        query.set("rows", 1);
        QueryResponse response = server.query(query);
        SolrDocumentList results = response.getResults();
        for (SolrDocument result1 : results) {
            String count = result1.getFieldValue("fl").toString();
            Word w = new Word(word, Integer.parseInt(count));
            result.add(w);/*www.  ja  v  a2 s .  co  m*/
        }

    }

    return result;
}

From source file:com.bindez.nlp.extract.ngram.term_frequency.TermFrequency.java

public List<Word> getTermsFrequency(Set<String> words) throws SolrServerException {
    List<Word> result = new ArrayList<Word>();
    server = new SolrServer().getSolrServer();

    for (String word : words) {
        SolrQuery query = new SolrQuery();

        query.setRequestHandler("/terms");
        query.set("terms.fl", "content");
        query.set("terms.regex", word);
        query.set("terms", "true");
        query.set("shards.qt", "/terms");
        query.set("distrib", "true");

        QueryResponse response = server.query(query);
        TermsResponse termsRes = response.getTermsResponse();
        List<TermsResponse.Term> terms = termsRes.getTerms("content");
        TermsResponse.Term term = null;//from   w  w w. j a  v  a  2 s  .  co m
        Word w = new Word();
        if (terms != null && terms.size() > 0) {
            term = terms.get(0);
            w.setText(term.getTerm());
            w.setCount(term.getFrequency());
            result.add(w);
        }

    }

    return result;
}

From source file:com.bindez.nlp.extract.ngram.term_frequency.TermFrequencyTask.java

@Override
public TermResult call() throws Exception {
    TermResult result = new TermResult();
    HttpSolrServer tfServer = this.server; //SolrServer.getSolrServer();
    /*//w w w.  j  a  v  a  2  s.c om
        SolrQuery query = new SolrQuery();
        query.setRequestHandler("/terms");
        query.set("terms.fl", "content");
        query.set("terms.regex", term) ;
        query.set("terms", "true");
        query.set("shards.qt","/terms");
        query.set("distrib", "true");
        QueryResponse response = server.query(query);
        TermsResponse termsRes = response.getTermsResponse();
        List<TermsResponse.Term> terms= termsRes.getTerms("content");
                
        TermsResponse.Term solrTerm = null ;
        if(terms != null && terms.size() > 0){
         solrTerm = terms.get(0);
         result.setTerm(term);
         result.setFrequency(solrTerm.getFrequency());
        }else{
            result.setTerm(term);
            result.setFrequency(0);
        }
    */

    SolrQuery query = new SolrQuery();
    query.set("q", "content:" + term);
    query.add("fl", "fl:totaltermfreq(content," + term + ")");
    QueryResponse response = server.query(query);
    SolrDocumentList results = response.getResults();
    for (SolrDocument result1 : results) {
        String count = result1.getFieldValue("fl").toString();
        result.setTerm(term);
        result.setFrequency(Long.parseLong(count));

    }

    return result;
}

From source file:com.bindez.nlp.extract.segmentor.WordSegmentorNgramTask.java

@Override
public TermResult call() throws Exception {
    TermResult result = new TermResult();
    HttpSolrServer tfServer = this.server; //SolrServer.getSolrServer();

    SolrQuery query = new SolrQuery();
    query.set("q", "content:" + term);
    query.add("fl", "fl:totaltermfreq(content," + term + ")");
    QueryResponse response = server.query(query);
    SolrDocumentList results = response.getResults();
    for (SolrDocument result1 : results) {
        String count = result1.getFieldValue("fl").toString();
        result.setTerm(term);/*from  w w w . j a  va2 s  . co  m*/
        result.setFrequency(Long.parseLong(count));

    }

    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/*from  ww  w .ja  va2s .com*/
 */
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// w w w .  j  a v a  2 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();
}