List of usage examples for org.apache.solr.client.solrj SolrQuery SolrQuery
public SolrQuery()
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(); }