List of usage examples for org.apache.solr.client.solrj SolrQuery setFields
public SolrQuery setFields(String... fields)
From source file:org.orcid.persistence.dao.impl.SolrDaoImpl.java
License:Open Source License
@Override public Date retrieveLastModified(String orcid) { SolrQuery query = new SolrQuery(); query.setQuery(ORCID + ":\"" + orcid + "\""); query.setFields(PROFILE_LAST_MODIFIED_DATE); try {/*from w w w.j a v a2 s .co m*/ 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); } }
From source file:org.outermedia.solrfusion.SolrTestServer.java
License:Open Source License
public SolrQuery createQuery(String query) { SolrQuery sq = new SolrQuery(query); sq.setFields("*"); sq.setRows(Integer.MAX_VALUE); return sq;/*from w ww . j a v a 2 s.co m*/ }
From source file:org.psystems.dicom.browser.server.DicSuggestBoxServiceImpl.java
License:Open Source License
public SuggestTransactedResponse getSuggestions(long transactionId, String version, String dicName, SuggestOracle.Request req) throws DefaultGWTRPCException { SuggestTransactedResponse resp = new SuggestTransactedResponse(); resp.setTransactionId(transactionId); // ? //from ww w .ja v a 2 s . co m org.psystems.dicom.browser.server.Util.checkClentVersion(version); // Create a list to hold our suggestions (pre-set the lengthto the limit // specified by the request) List<Suggestion> suggestions = new ArrayList<Suggestion>(); try { SolrServer server = new CommonsHttpSolrServer("http://localhost:8983/solr"); // ((CommonsHttpSolrServer) server).setRequestWriter(new BinaryRequestWriter()); // getServletContext(), req.getQuery(), req.getLimit() if (dicName.equals("diagnosis")) { SolrQuery query = new SolrQuery(); query.setQuery("dicName:diagnosis"); query.setFilterQueries("diagnosisCode:" + req.getQuery().toUpperCase() + "* OR diagnosisDescription:" + req.getQuery().toLowerCase() + "*"); query.setRows(20); query.setFields("diagnosisCode,diagnosisDescription"); query.addSortField("diagnosisCode", SolrQuery.ORDER.asc); QueryResponse rsp; rsp = server.query(query); List<Diagnosis> beans = rsp.getBeans(Diagnosis.class); for (Diagnosis diaBean : beans) { DiagnosisProxy proxy = new DiagnosisProxy(); proxy.setDiagnosisCode(diaBean.getDiagnosisCode()); proxy.setDiagnosisDescription(diaBean.getDiagnosisDescription()); ItemSuggestion item = new ItemSuggestion( proxy.getDiagnosisCode().toUpperCase() + " " + proxy.getDiagnosisDescription() + "...", proxy.getDiagnosisCode().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } // for (int i = 0; i < 10; i++) { // DiagnosisProxy proxy = new DiagnosisProxy(); // proxy.setDiagnosisCode(req.getQuery() + i); // proxy.setDiagnosisDescription(req.getQuery() + i + // " ?"); // // ItemSuggestion item = new ItemSuggestion(" " + // proxy.getDiagnosisDescription() + "...", proxy // .getDiagnosisCode().toUpperCase()); // item.setEvent(proxy); // suggestions.add(item); // } } else if (dicName.equals("services")) { SolrQuery query = new SolrQuery(); query.setQuery("dicName:service"); query.setFilterQueries("serviceCode:" + req.getQuery().toUpperCase() + "* OR serviceAlias:" + req.getQuery().toLowerCase() + "* OR serviceDescription:" + req.getQuery().toLowerCase() + "*"); query.setRows(20); query.setFields("serviceCode,serviceAlias,serviceDescription"); query.addSortField("serviceCode", SolrQuery.ORDER.asc); QueryResponse rsp; rsp = server.query(query); List<Service> beans = rsp.getBeans(Service.class); for (Service srvBean : beans) { ServiceProxy proxy = new ServiceProxy(); proxy.setServiceAlias(srvBean.getServiceAlias()); proxy.setServiceCode(srvBean.getServiceCode()); proxy.setServiceDescription(srvBean.getServiceDescription()); ItemSuggestion item = new ItemSuggestion(proxy.getServiceCode().toUpperCase() + " " + proxy.getServiceAlias() + " - " + proxy.getServiceDescription() + "...", proxy.getServiceCode().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } // for (int i = 0; i < 10; i++) { // ServiceProxy proxy = new ServiceProxy(); // proxy.setServiceCode(req.getQuery() + i); // proxy.setServiceAlias("alias" + i); // proxy.setServiceDescription(req.getQuery() + i + " ? ??"); // proxy.setServiceCount(1); // // ItemSuggestion item = new ItemSuggestion(" " + proxy.getServiceDescription() + "...", proxy // .getServiceCode().toUpperCase()); // item.setEvent(proxy); // suggestions.add(item); // } } else if (dicName.equals("doctors")) { // System.out.println("!!!! searche doctors...."); SolrQuery query = new SolrQuery(); query.setQuery("dicName:employee"); // employeeType employeeCode employeeName query.setFilterQueries("employeeName:" + req.getQuery().toLowerCase() + "* OR employeeCode:CODE" + req.getQuery().toLowerCase() + "*"); query.setRows(20); // query.setFields("diagnosisCode,diagnosisDescription"); // query.addSortField("diagnosisCode", SolrQuery.ORDER.asc); QueryResponse rsp; rsp = server.query(query); List<Employee> beans = rsp.getBeans(Employee.class); for (Employee emp : beans) { // System.out.println("!!! emp="+emp); EmployeeProxy proxy = new EmployeeProxy(); proxy.setEmployeeName(emp.getEmployeeName()); proxy.setEmployeeCode(emp.getEmployeeCode()); proxy.setEmployeeType(emp.getEmployeeType()); ItemSuggestion item = new ItemSuggestion( proxy.getEmployeeCode() + " " + proxy.getEmployeeName(), proxy.getEmployeeName().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } // for (int i = 0; i < 10; i++) { // EmployeeProxy proxy = new EmployeeProxy(); // proxy.setEmployeeName(req.getQuery().toUpperCase() + i); // proxy.setEmployeeCode("CODE" + i); // proxy.setEmployeeType(EmployeeProxy.TYPE_DOCTOR); // // ItemSuggestion item = new ItemSuggestion(" " + // proxy.getEmployeeName() + "...", proxy // .getEmployeeName().toUpperCase()); // item.setEvent(proxy); // suggestions.add(item); // } } else if (dicName.equals("operators")) { SolrQuery query = new SolrQuery(); query.setQuery("dicName:employee"); // employeeType employeeCode employeeName query.setFilterQueries("employeeName:" + req.getQuery().toLowerCase() + "*"); query.setRows(20); // query.setFields("diagnosisCode,diagnosisDescription"); // query.addSortField("diagnosisCode", SolrQuery.ORDER.asc); QueryResponse rsp; rsp = server.query(query); List<Employee> beans = rsp.getBeans(Employee.class); for (Employee emp : beans) { // System.out.println("!!! emp="+emp); EmployeeProxy proxy = new EmployeeProxy(); proxy.setEmployeeName(emp.getEmployeeName()); proxy.setEmployeeCode(emp.getEmployeeCode()); proxy.setEmployeeType(emp.getEmployeeType()); ItemSuggestion item = new ItemSuggestion( proxy.getEmployeeCode() + " " + proxy.getEmployeeName(), proxy.getEmployeeName().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } // for (int i = 0; i < 10; i++) { // EmployeeProxy proxy = new EmployeeProxy(); // proxy.setEmployeeName(req.getQuery().toUpperCase() + i); // proxy.setEmployeeCode("CODE" + i); // proxy.setEmployeeType(EmployeeProxy.TYPE_OPERATOR); // // ItemSuggestion item = new ItemSuggestion(" " + // proxy.getEmployeeName() + "...", proxy // .getEmployeeName().toUpperCase()); // item.setEvent(proxy); // suggestions.add(item); // } } else if (dicName.equals("devices")) { for (int i = 0; i < 10; i++) { ManufacturerDeviceProxy proxy = new ManufacturerDeviceProxy(); proxy.setManufacturerModelName(req.getQuery().toUpperCase() + i); proxy.setManufacturerModelDescription("? " + i); proxy.setManufacturerModelTypeDescription( "? ? ??"); proxy.setModality("CR"); ItemSuggestion item = new ItemSuggestion(" " + proxy.getManufacturerModelName() + "...", proxy.getManufacturerModelName().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } } else if (dicName.equals("patients")) { for (int i = 0; i < 10; i++) { PatientProxy proxy = new PatientProxy(); proxy.setPatientName(req.getQuery().toUpperCase() + i); proxy.setPatientBirthDate("1974-03-01"); proxy.setPatientSex("M"); proxy.setPatientShortName("74"); ItemSuggestion item = new ItemSuggestion(" " + proxy.getPatientName() + " (" + proxy.getPatientSex() + ")" + proxy.getPatientBirthDate() + "...", proxy.getPatientName().toUpperCase()); item.setEvent(proxy); suggestions.add(item); } } } catch (Exception e) { e.printStackTrace(); throw org.psystems.dicom.browser.server.Util.throwPortalException("Suggestions error! ", e); } // Now set the suggestions in the response resp.setSuggestions(suggestions); // Send the response back to the client return resp; }
From source file:org.roda.core.index.utils.SolrUtils.java
public static <T extends IsIndexed> IndexResult<T> find(SolrClient index, Class<T> classToRetrieve, Filter filter, Sorter sorter, Sublist sublist, Facets facets, List<String> fieldsToReturn) throws GenericException, RequestNotValidException { IndexResult<T> ret;/* w ww . jav a 2 s. c o m*/ SolrQuery query = new SolrQuery(); query.setParam("q.op", DEFAULT_QUERY_PARSER_OPERATOR); query.setQuery(parseFilter(filter)); query.setSorts(parseSorter(sorter)); query.setStart(sublist.getFirstElementIndex()); query.setRows(sublist.getMaximumElementCount()); if (!fieldsToReturn.isEmpty()) { query.setFields(fieldsToReturn.toArray(new String[fieldsToReturn.size()])); } parseAndConfigureFacets(facets, query); try { QueryResponse response = index.query(getIndexName(classToRetrieve).get(0), query); ret = queryResponseToIndexResult(response, classToRetrieve, facets, fieldsToReturn); } catch (SolrServerException | IOException e) { throw new GenericException("Could not query index", e); } catch (SolrException e) { throw new RequestNotValidException(e); } catch (RuntimeException e) { throw new GenericException("Unexpected exception while querying index", e); } return ret; }
From source file:org.roda.core.index.utils.SolrUtils.java
public static <T extends IsIndexed> IndexResult<T> find(SolrClient index, Class<T> classToRetrieve, Filter filter, Sorter sorter, Sublist sublist, Facets facets, User user, boolean justActive, List<String> fieldsToReturn) throws GenericException, RequestNotValidException { IndexResult<T> ret;// w ww .j a v a2 s.c o m SolrQuery query = new SolrQuery(); query.setParam("q.op", DEFAULT_QUERY_PARSER_OPERATOR); query.setQuery(parseFilter(filter)); query.setSorts(parseSorter(sorter)); query.setStart(sublist.getFirstElementIndex()); query.setRows(sublist.getMaximumElementCount()); query.setFields(fieldsToReturn.toArray(new String[fieldsToReturn.size()])); parseAndConfigureFacets(facets, query); if (hasPermissionFilters(classToRetrieve)) { query.addFilterQuery(getFilterQueries(user, justActive, classToRetrieve)); } try { QueryResponse response = index.query(getIndexName(classToRetrieve).get(0), query); ret = queryResponseToIndexResult(response, classToRetrieve, facets, fieldsToReturn); } catch (SolrServerException | IOException e) { throw new GenericException("Could not query index", e); } catch (SolrException e) { throw new RequestNotValidException(e.getMessage()); } catch (RuntimeException e) { throw new GenericException("Unexpected exception while querying index", e); } return ret; }
From source file:org.sakaiproject.nakamura.upgrade.servlet.TagMigrator.java
License:Apache License
private SolrDocumentList getMoreDocuments(int start) throws SolrServerException { SolrQuery query = new SolrQuery("tag:*"); query.setFields("tag"); // we only need the tag field query.setRows(ROWS_PER_SEARCH);/* w w w .j ava 2 s .c om*/ query.setStart(start); // go direct to solr server so we can get all documents more easily QueryResponse solrResponse = this.solrSearchService.getServer().query(query); LOGGER.info("Got " + solrResponse.getResults().getNumFound() + " tagged documents from solr index; " + "this batch starts at " + solrResponse.getResults().getStart()); return solrResponse.getResults(); }
From source file:org.sleuthkit.autopsy.keywordsearch.AccountsText.java
License:Open Source License
/** * Initialize this object with information about which pages/chunks have * hits. Multiple calls will not change the initial results. *//*ww w. j av a 2 s.c o m*/ synchronized private void loadPageInfo() { if (isPageInfoLoaded) { return; } if (chunkId != null) {//if a chunk is specified, only show that chunk/page this.numberPagesForFile = 1; this.currentPage = chunkId; this.numberOfHitsPerPage.put(chunkId, 0); this.pages.add(chunkId); this.currentHitPerPage.put(chunkId, 0); } else { try { this.numberPagesForFile = solrServer.queryNumFileChunks(this.solrObjectId); } catch (KeywordSearchModuleException | NoOpenCoreException ex) { LOGGER.log(Level.WARNING, "Could not get number pages for content " + this.solrDocumentId, ex); //NON-NLS return; } //if has chunks, get pages with hits TreeSet<Integer> sortedPagesWithHits = new TreeSet<>(); SolrQuery q = new SolrQuery(); q.setShowDebugInfo(DEBUG); //debug q.setQuery(queryString); q.setFields(Server.Schema.ID.toString()); //for this case we only need the document ids q.addFilterQuery( Server.Schema.ID.toString() + ":" + this.solrObjectId + Server.CHUNK_ID_SEPARATOR + "*"); try { QueryResponse response = solrServer.query(q, METHOD.POST); for (SolrDocument resultDoc : response.getResults()) { final String resultDocumentId = resultDoc.getFieldValue(Server.Schema.ID.toString()).toString(); // Put the solr chunk id in the map String resultChunkID = StringUtils.substringAfter(resultDocumentId, Server.CHUNK_ID_SEPARATOR); if (StringUtils.isNotBlank(resultChunkID)) { sortedPagesWithHits.add(Integer.parseInt(resultChunkID)); } else { sortedPagesWithHits.add(0); } } } catch (KeywordSearchModuleException | NoOpenCoreException | NumberFormatException ex) { LOGGER.log(Level.WARNING, "Error executing Solr highlighting query: " + keywords, ex); //NON-NLS } //set page to first page having highlights if (sortedPagesWithHits.isEmpty()) { this.currentPage = 0; } else { this.currentPage = sortedPagesWithHits.first(); } for (Integer page : sortedPagesWithHits) { numberOfHitsPerPage.put(page, 0); //unknown number of matches in the page pages.add(page); currentHitPerPage.put(page, 0); //set current hit to 0th } } isPageInfoLoaded = true; }
From source file:org.sleuthkit.autopsy.keywordsearch.LuceneQuery.java
License:Open Source License
/** * Create the query object for the stored keyword * * @param snippets True if query should request snippets * @return// ww w .j a va 2s. c om */ private SolrQuery createAndConfigureSolrQuery(boolean snippets) { SolrQuery q = new SolrQuery(); q.setShowDebugInfo(DEBUG); //debug //set query, force quotes/grouping around all literal queries final String groupedQuery = KeywordSearchUtil.quoteQuery(keywordStringEscaped); String theQueryStr = groupedQuery; if (field != null) { //use the optional field StringBuilder sb = new StringBuilder(); sb.append(field).append(":").append(groupedQuery); theQueryStr = sb.toString(); } q.setQuery(theQueryStr); q.setRows(MAX_RESULTS); if (snippets) { q.setFields(Server.Schema.ID.toString()); } else { q.setFields(Server.Schema.ID.toString()); } for (KeywordQueryFilter filter : filters) { q.addFilterQuery(filter.toString()); } if (snippets) { q.addHighlightField(Server.Schema.TEXT.toString()); //q.setHighlightSimplePre("«"); //original highlighter only //q.setHighlightSimplePost("»"); //original highlighter only q.setHighlightSnippets(1); q.setHighlightFragsize(SNIPPET_LENGTH); //tune the highlighter q.setParam("hl.useFastVectorHighlighter", "on"); //fast highlighter scales better than standard one NON-NLS q.setParam("hl.tag.pre", "«"); //makes sense for FastVectorHighlighter only NON-NLS q.setParam("hl.tag.post", "«"); //makes sense for FastVectorHighlighter only NON-NLS q.setParam("hl.fragListBuilder", "simple"); //makes sense for FastVectorHighlighter only NON-NLS //Solr bug if fragCharSize is smaller than Query string, StringIndexOutOfBoundsException is thrown. q.setParam("hl.fragCharSize", Integer.toString(theQueryStr.length())); //makes sense for FastVectorHighlighter only NON-NLS //docs says makes sense for the original Highlighter only, but not really //analyze all content SLOW! consider lowering q.setParam("hl.maxAnalyzedChars", Server.HL_ANALYZE_CHARS_UNLIMITED); //NON-NLS } return q; }
From source file:org.xwiki.search.solr.internal.job.IndexerJob.java
License:Open Source License
/** * Index document (versions) not yet indexed in the passed wiki. * //w ww .j a va2s .c o m * @param wiki the wiki where to search for documents to index * @param document the document found * @param solrInstance used to start indexing of a document * @throws SolrIndexerException when failing to index new documents * @throws IllegalArgumentException when failing to index new documents * @throws SolrServerException when failing to index new documents */ private void addMissing(String wiki, Object[] document, SolrInstance solrInstance) throws SolrIndexerException, IllegalArgumentException, SolrServerException { String name = (String) document[0]; String space = (String) document[1]; String localeString = (String) document[2]; String version = (String) document[3]; DocumentReference reference = createDocumentReference(wiki, space, name, localeString); SolrQuery solrQuery = new SolrQuery( FieldUtils.ID + ':' + ClientUtils.escapeQueryChars(this.solrResolver.getId(reference))); solrQuery.addFilterQuery(FieldUtils.VERSION + ':' + ClientUtils.escapeQueryChars(version)); solrQuery.setFields(FieldUtils.ID); QueryResponse response = solrInstance.query(solrQuery); if (response.getResults().getNumFound() == 0) { this.indexer.index(reference, true); } }
From source file:org.zaizi.sensefy.api.solr.querybuilder.QueryBuilder.java
License:Open Source License
/** * return a solr query built with all the parameters in input . Spellcheck * included//from w ww .ja va 2 s .c om * * @param query * @param fields * @param filters * @param start * @param rows * @param security * @param clustering * @param sensefyToken * @return * @throws SensefyException */ public static SolrQuery getSolrQuery(String query, String fields, boolean facet, FacetConfigurationList facetConfig, String filters, int start, Integer rows, String order, boolean security, boolean spellcheck, boolean clustering, Principal user) { SensefyUser sensefyUser = SensefyUserMapper.getSensefyUserFromPrincipal(user); if (rows == null) { rows = DEFAULT_ROWS; } // retrieve the documents from primary index SolrQuery documentsQuery = new SolrQuery(query); Set<String> selectedFields = new HashSet<String>(); documentsQuery.setRows(rows); documentsQuery.set("spellcheck", spellcheck); documentsQuery.set("clustering", clustering); if (fields != null && !fields.isEmpty()) { String[] fieldsArray = fields.split(","); documentsQuery.setFields(fieldsArray); } if (filters != null && !filters.isEmpty()) { String[] filtersArray = buildFilterQueries(filters.split(","), selectedFields); documentsQuery.setFilterQueries(filtersArray); } if (order != null && !order.isEmpty()) { documentsQuery.set(CommonParams.SORT, order); } if (security) { String filterQueryACLs = SecurityQueryBuilder.getSecurityFilterQuery(sensefyUser); documentsQuery.addFilterQuery(filterQueryACLs); } documentsQuery.set("TZ", sensefyUser.getTimezone().getID()); documentsQuery.setStart(start); ModifiableSolrParams querySolrParams = new ModifiableSolrParams(); if (facet) { // facets must be created with proper exclusion tag where needed documentsQuery.setFacet(true); List<FacetConfiguration> facetConfigurations = facetConfig.getFacetConfigurations(); for (FacetConfiguration facetConfiguration : facetConfigurations) { String tag = null; if (selectedFields.contains(facetConfiguration.getField())) tag = "tag-" + facetConfiguration.getField(); facetConfiguration.getSolrFacetParams(querySolrParams, tag); } } documentsQuery.add(querySolrParams); return documentsQuery; }