Refine search
String collection = query.getStore(); String keyIdField = getKeyFieldId(collection); SolrQuery solrQuery = new SolrQuery("*:*"); String queryFilter = buildQueryFilter(query.getCondition(), informations.get(collection)); solrQuery.addFilterQuery(queryFilter); if (!query.getOrder().isEmpty()) { List<IndexQuery.OrderEntry> orders = query.getOrder(); String item = order1.getKey(); SolrQuery.ORDER order = order1.getOrder() == Order.ASC ? SolrQuery.ORDER.asc : SolrQuery.ORDER.desc; solrQuery.addSort(new SolrQuery.SortClause(item, order)); logger.debug("Executed query [{}] in {} ms", query.getCondition(), response.getElapsedTime()); int totalHits = response.getResults().size(); for (SolrDocument hit : response.getResults()) { result.add(hit.getFieldValue(keyIdField).toString());
fieldList = fields.toArray(new String[fields.size()]); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.setParam("fq", "id:[ " + startkey + " TO * ]"); if (returnFields) { query.setFields(fieldList); query.setRows(recordcount); final QueryResponse response = client.query(table, query); SolrDocumentList results = response.getResults(); entry = new HashMap<String, ByteIterator>((int) results.getNumFound()); for (String field : hit.getFieldNames()) { entry.put(field, new StringByteIterator(String.valueOf(hit.getFirstValue(field)))); return checkStatus(response.getStatus()); } catch (IOException | SolrServerException e) { e.printStackTrace();
final SolrQuery solrQuery = new SolrQuery(); stateMap.putAll(context.getStateManager().getState(Scope.CLUSTER).toMap()); solrQuery.setQuery("*:*"); final String query = context.getProperty(SOLR_QUERY).getValue(); if (!StringUtils.isBlank(query) && !query.equals("*:*")) { solrQuery.addFilterQuery(query); logger.debug(solrQuery.toQueryString()); final QueryResponse response = req.process(getSolrClient()); final SolrDocumentList documentList = response.getResults(); if (response.getResults().size() > 0) { final SolrDocument lastSolrDocument = documentList.get(response.getResults().size()-1); final String latestDateValue = df.format(lastSolrDocument.get(dateField)); final String newCursorMark = response.getNextCursorMark(); if (dateFieldNotInSpecifiedFieldsList.get()) { for (SolrDocument doc : response.getResults()) { doc.removeFields(dateField);
public SolrInputDocument toSolrInputDocument(SolrDocument d) { final SolrInputDocument doc = new SolrInputDocument(); for (String name : d.getFieldNames()) { doc.addField(name, d.getFieldValue(name)); } return doc; } }
fieldList = fields.toArray(new String[fields.size()]); SolrQuery query = new SolrQuery(); query.setQuery("id:" + key); if (returnFields) { query.setFields(fieldList); SolrDocumentList results = response.getResults(); if ((results != null) && (results.getNumFound() > 0)) { for (String field : results.get(0).getFieldNames()) { result.put(field, new StringByteIterator(String.valueOf(results.get(0).getFirstValue(field)))); return checkStatus(response.getStatus()); } catch (IOException | SolrServerException e) { e.printStackTrace();
public String getDocText(String id) throws SolrServerException { String q = "id:" + id; SolrQuery query = new SolrQuery(); query.setQuery(q); query.setFields("text"); QueryResponse rsp = server.query(query); String docText = ""; if (rsp.getResults().getNumFound() > 0) { @SuppressWarnings({ "unchecked", "rawtypes" }) ArrayList<String> results = (ArrayList) rsp.getResults().get(0) .getFieldValues("text"); docText = results.get(0); } return docText; }
String collection = query.getStore(); String keyIdField = getKeyFieldId(collection); SolrQuery solrQuery = new SolrQuery(query.getQuery()) .addField(keyIdField) .setIncludeScore(true) .setStart(query.getOffset()) .setRows(query.hasLimit() ? query.getLimit() : maxResults); QueryResponse response = solrClient.query(collection, solrQuery); if (logger.isDebugEnabled()) logger.debug("Executed query [{}] in {} ms", query.getQuery(), response.getElapsedTime()); int totalHits = response.getResults().size(); if (!query.hasLimit() && totalHits >= maxResults) { logger.warn("Query result set truncated to first [{}] elements for query: {}", maxResults, query); for (SolrDocument hit : response.getResults()) { double score = Double.parseDouble(hit.getFieldValue("score").toString()); result.add(new RawQuery.Result<String>(hit.getFieldValue(keyIdField).toString(), score));
@Override public Set<String> getRootConcepts() throws ClassifierException { LinkedHashSet<String> rootConcepts = new LinkedHashSet<String>(); SolrServer solrServer = getActiveSolrServer(); SolrQuery query = new SolrQuery("*:*"); // TODO: this can be very big on flat thesauri: should we enable a paging API instead? query.setRows(MAX_ROOTS); query.setFields(conceptUriField); query.setSortField(conceptUriField, SolrQuery.ORDER.asc); query.addFilterQuery(entryTypeField + ":" + METADATA_ENTRY); if (broaderField != null) { // find any topic with an empty broaderField query.addFilterQuery(" -" + broaderField + ":" + SOLR_NON_EMPTY_FIELD); } try { QueryResponse response = solrServer.query(query); if (response.getResults().size() >= MAX_ROOTS) { log.warn(String.format("TopicClassifier '%s' has more than %d registered topic roots." + " Some roots might be ignored.", engineName, MAX_ROOTS)); } for (SolrDocument result : response.getResults()) { rootConcepts.add(result.getFirstValue(conceptUriField).toString()); } } catch (SolrServerException e) { String msg = String.format("Error while fetching root topics on Solr Core '%s'.", solrCoreId); throw new ClassifierException(msg, e); } return rootConcepts; }
private ServerDetail fetchServerDetails(String hostname, String coreName, SolrServer realTimeThoth) throws SolrServerException { System.out.println("Fetching server details for hostname("+hostname+") coreName("+coreName+")"); QueryResponse qr = realTimeThoth.query(new SolrQuery("hostname_s:\"" + hostname + "\"" +" AND " + "coreName_s:\"" +coreName + "\" AND NOT exception_b:true AND NOT slowQuery_b:true").setRows(1)); SolrDocumentList solrDocumentList = qr.getResults(); ServerDetail sd = null; if (qr.getResults().getNumFound() > 0) { String pool = (String)solrDocumentList.get(0).getFieldValue(POOL); String port = solrDocumentList.get(0).getFieldValue(PORT).toString(); sd = new ServerDetail(hostname, pool, port, coreName); } return sd; }
@Override public OrcidSolrResult findByOrcid(String orcid) { OrcidSolrResult orcidSolrResult = null; SolrQuery query = new SolrQuery(); query.setQuery(ORCID + ":\"" + orcid + "\"").setFields(SCORE, ORCID, PUBLIC_PROFILE); try { QueryResponse queryResponse = solrServerReadOnly.query(query); if (!queryResponse.getResults().isEmpty()) { SolrDocument solrDocument = queryResponse.getResults().get(0); orcidSolrResult = new OrcidSolrResult(); orcidSolrResult.setRelevancyScore((Float) solrDocument.get(SCORE)); orcidSolrResult.setOrcid((String) solrDocument.get(ORCID)); orcidSolrResult.setPublicProfileMessage((String) solrDocument.getFieldValue(PUBLIC_PROFILE)); } } catch (SolrServerException se) { String errorMessage = MessageFormat.format("Error when attempting to retrieve orcid {0}", new Object[] { orcid }); throw new NonTransientDataAccessResourceException(errorMessage, se); } return orcidSolrResult; }
@Override public String getVersion() { QueryResponse response; SolrQuery query = new SolrQuery(); SolrDocumentList termList; SolrDocument firstDoc; query.setQuery("version:*"); query.set("rows", "1"); try { response = this.externalServicesAccess.getServer().query(query); termList = response.getResults(); if (!termList.isEmpty()) { firstDoc = termList.get(0); return firstDoc.getFieldValue(VERSION_FIELD_NAME).toString(); } } catch (SolrServerException | SolrException ex) { this.logger.warn("Failed to query ontology version: {}", ex.getMessage()); } return null; } }
@Override public Set<String> getBroaderConcepts(String id) throws ClassifierException { LinkedHashSet<String> broaderConcepts = new LinkedHashSet<String>(); if (broaderField == null) { return broaderConcepts; } SolrServer solrServer = getActiveSolrServer(); SolrQuery query = new SolrQuery("*:*"); query.addFilterQuery(conceptUriField + ":" + ClientUtils.escapeQueryChars(id)); query.addField(broaderField); try { for (SolrDocument result : solrServer.query(query).getResults()) { // there should be only one results Collection<Object> broaderFieldValues = result.getFieldValues(broaderField); if (broaderFieldValues == null) { continue; } for (Object value : broaderFieldValues) { broaderConcepts.add(value.toString()); } } } catch (SolrServerException e) { String msg = String.format("Error while fetching broader topics of '%s' on Solr Core '%s'.", id, solrCoreId); throw new ClassifierException(msg, e); } return broaderConcepts; }
@Override public Set<String> getNarrowerConcepts(String broadTopicId) throws ClassifierException { LinkedHashSet<String> narrowerConcepts = new LinkedHashSet<String>(); if (broaderField == null) { return narrowerConcepts; } SolrServer solrServer = getActiveSolrServer(); SolrQuery query = new SolrQuery("*:*"); query.addFilterQuery(entryTypeField + ":" + METADATA_ENTRY); query.addFilterQuery(broaderField + ":" + ClientUtils.escapeQueryChars(broadTopicId)); query.addField(conceptUriField); query.addSortField(conceptUriField, SolrQuery.ORDER.asc); try { for (SolrDocument result : solrServer.query(query).getResults()) { narrowerConcepts.add(result.getFirstValue(conceptUriField).toString()); } } catch (SolrServerException e) { String msg = String.format("Error while fetching narrower topics of '%s' on Solr Core '%s'.", broadTopicId, solrCoreId); throw new ClassifierException(msg, e); } return narrowerConcepts; }
public static void doQuery(SolrClient ss, String id) throws SolrServerException, IOException { SolrParams p = new SolrQuery("id:\"" + id + "\""); QueryResponse r = ss.query(p); System.out.println("GOT collection " + r.getResults().get(0).getFieldValue("collection")); System.out.println("GOT collections " + r.getResults().get(0).getFieldValue("collections")); System.out.println("STILL GOT crawl_date " + r.getResults().get(0).getFieldValue("crawl_date")); }
CloudSolrServer server = new CloudSolrServer(solrZKServerUrl); SolrQuery query = new SolrQuery(); query.setQuery("*:*"); query.setRows(Integer.MAX_VALUE); QueryResponse rsp; rsp = server.query(query, METHOD.POST); SolrDocumentList docs = rsp.getResults(); for (SolrDocument doc : docs) { Collection<String> fieldNames = doc.getFieldNames(); for (String s: fieldNames) { System.out.println(doc.getFieldValue(s)); } }
q.setStart(kysely.getOffset()); q.setRows(kysely.getLimit()); q.addSort(ORG_NIMI_LOWERCASE, SolrQuery.ORDER.asc); QueryResponse hakukohdeResponse = hakukohdeSolr.query(q); for (SolrDocument doc : hakukohdeResponse.getResults()) { if (doc.getFieldValue(ORG_OID) != null) { for (String tmpOrgOid : (ArrayList<String>) doc.getFieldValue(ORG_OID)) { orgOids.add(tmpOrgOid); } else if (doc.getFieldValue(fallBackField) != null) { orgOids.add((String) doc.getFieldValue(fallBackField)); Map<String, OrganisaatioPerustieto> orgResponse = searchOrgs(orgOids); SolrDocumentToHakukohdeConverter converter = new SolrDocumentToHakukohdeConverter(); response = converter.convertSolrToHakukohteetVastaus(hakukohdeResponse.getResults(), orgResponse, defaultTarjoaja); response.setHitCount((int) hakukohdeResponse.getResults().getNumFound()); } else { response = new HakukohteetVastaus();
public String[] search(final SolrQuery query, final String retrievedField) throws SolrServerException, IOException { final QueryResponse response = this.getServer().query(query); final SolrDocumentList docList = response.getResults(); final int size = docList.size(); final String docIDs[] = new String[size]; SolrDocument doc = null; for (int i = 0; i < size; i++) { doc = docList.get(i); docIDs[i] = (String) doc.getFieldValue(retrievedField); } return docIDs; }
@Override public Date retrieveLastModified(String orcid) { SolrQuery query = new SolrQuery(); query.setQuery(ORCID + ":\"" + orcid + "\""); query.setFields(PROFILE_LAST_MODIFIED_DATE); try { QueryResponse response = solrServer.query(query); List<SolrDocument> results = response.getResults(); if (results.isEmpty()) { return null; } else { return (Date) results.get(0).getFieldValue(PROFILE_LAST_MODIFIED_DATE); } } catch (SolrServerException e) { throw new NonTransientDataAccessResourceException("Error retrieving last modified date from SOLR Server", e); } }
@Override public int getColumnCount() { if(response == null || response.getResults().size() == 0) { return 0; } return response.getResults().get(0).getFieldNames().size(); }
@Override public List<MCRObjectID> get(int from, int count) throws SwordServerException { final SolrQuery queryCopy = this.solrQuery.getCopy(); queryCopy.setStart(from); queryCopy.setRows(count); try { final QueryResponse queryResponse = MCRSolrClientFactory.getMainSolrClient().query(queryCopy); return queryResponse.getResults().stream() .map(r -> (String) r.getFieldValue("id")) .map(MCRObjectID::getInstance) .collect(Collectors.toList()); } catch (SolrServerException | IOException e) { throw new SwordServerException("Error while getting id list with MCRSword2SolrObjectIDSupplier and Query: " + this.solrQuery, e); } } }