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