List of usage examples for org.apache.solr.client.solrj.response TermsResponse getTerms
public List<Term> getTerms(String field)
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;/*w w w. jav a 2 s . c om*/ 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.mmj.app.lucene.solr.client.SolrClient.java
License:Open Source License
/** * solrautoComplete/*from w w w . j av a2 s . c om*/ * * @param corename * @param solrQuery * @return */ public List<Term> suggest(String corename, final SolrQuery solrQuery) { final HttpSolrServer server = getOrCreateSolrServer(corename); // final List<FacetField> queryResult = new ArrayList<FacetField>(); final List<Term> queryResult = new ArrayList<Term>(); exec(new Executor() { public Result exec() throws SolrServerException, IOException { QueryResponse query = null; if (solrQuery.toString().length() > MAX_URL_LENGTH) { query = server.query(solrQuery, SolrRequest.METHOD.POST); } else { query = server.query(solrQuery, SolrRequest.METHOD.GET); } // List<FacetField> list = query.getFacetFields(); // if (Argument.isNotEmpty(list)) { // queryResult.addAll(list); // } TermsResponse resp = query.getTermsResponse(); queryResult.addAll(resp.getTerms(solrQuery.getTermsRegexFlags()[0])); return Result.success(); } }); return queryResult; }
From source file:fr.cnes.sitools.metacatalogue.resources.opensearch.OpensearchDescribeResource.java
License:Open Source License
/** * Create a description for the metacatalogue containing all the request parameters, their types and enumeration * /*ww w . j a v a2s . c o m*/ * @return a description for the metacatalogue */ private Describe createDescribe() { Describe describe = new Describe(); SolrServer server = SolRUtils.getSolRServer(solrCoreUrl); if (server == null) { throw new ResourceException(Status.SERVER_ERROR_INTERNAL, "Solr core : " + solrCoreUrl + " not reachable"); } LukeRequest request = new LukeRequest(); // request.setNumTerms(maxTopTerms); try { List<Filter> filters = new ArrayList<Filter>(); LukeResponse response = request.process(server); int numDocs = response.getNumDocs(); Map<String, LukeResponse.FieldInfo> fields = response.getFieldInfo(); for (Entry<String, LukeResponse.FieldInfo> field : fields.entrySet()) { LukeResponse.FieldInfo fieldInfo = field.getValue(); String fieldName = fieldInfo.getName(); boolean indexed = false; EnumSet<FieldFlag> flags = FieldInfo.parseFlags(fieldInfo.getSchema()); indexed = (flags != null && flags.contains(FieldFlag.INDEXED)); if (indexed && addToDescription(fieldName)) { // make a terms query to get the top terms SolrQuery query = new SolrQuery(); query.setRequestHandler("/terms"); query.setTerms(true); query.addTermsField(fieldName); query.setTermsLimit(maxTopTerms); query.setTermsMinCount(1); QueryRequest termsRequest = new QueryRequest(query); TermsResponse termsResponse = termsRequest.process(server).getTermsResponse(); List<Term> terms = termsResponse.getTerms(fieldName); Filter filter = new Filter(); filter.setId(fieldName); filter.setTitle(fieldName); if (canBeCategorised(terms)) { filter.setType(FilterType.enumeration); filter.setPopulation(numDocs); filter.setSon(createSons(terms)); } else { filter.setType(getFilterType(fieldInfo.getType())); } filters.add(filter); } } describe.setFilters(filters); return describe; } catch (SolrServerException e) { throw new ResourceException(Status.SERVER_ERROR_INTERNAL, e.getMessage(), e); } catch (IOException e) { throw new ResourceException(Status.SERVER_ERROR_INTERNAL, e.getMessage(), e); } }
From source file:fr.cnes.sitools.metacatalogue.resources.suggest.OpensearchSuggestResource.java
License:Open Source License
@Get public List<SuggestDTO> suggest(Variant variant) { String query = getRequest().getResourceRef().getQueryAsForm().getFirstValue("q"); if (query == null || query.isEmpty()) { getResponse().setStatus(Status.CLIENT_ERROR_BAD_REQUEST, "No suggestion parameter"); return null; }//from w w w. j a v a2s. c o m try { ThesaurusSearcher searcher = new ThesaurusSearcher(thesaurusName); List<SuggestDTO> suggests = new ArrayList<SuggestDTO>(); List<Concept> concepts = searcher.searchNarrowersBroader(query + "*", getLanguage()); for (Concept concept : concepts) { SuggestDTO suggestDTO = new SuggestDTO(); suggestDTO.setSuggestion(concept.getProperties().get("prefLabelNarrower").toString()); suggestDTO.setSuggestionAltLabel(concept.getProperties().get("altLabelNarrower").toString()); suggests.add(suggestDTO); } // get suggestion number in the metacatalogue then if (suggests.size() > 0) { SolrServer server = getSolrServer(getContext()); SolrQuery solrQuery = new SolrQuery(); solrQuery.setRequestHandler("/terms"); solrQuery.setTerms(true); solrQuery.setTermsLimit(-1); solrQuery.addTermsField(MetacatalogField._CONCEPTS.getField()); QueryResponse rsp; try { QueryRequest request = new QueryRequest(solrQuery); rsp = request.process(server); TermsResponse termsResponse = rsp.getTermsResponse(); List<TermsResponse.Term> terms = termsResponse.getTerms(MetacatalogField._CONCEPTS.getField()); Map<String, Long> map = createMapFromTerms(terms); Long nb = null; for (SuggestDTO suggest : suggests) { if (map != null) { nb = map.get(suggest.getSuggestionAltLabel()); } if (nb == null) { suggest.setNb(0); } else { suggest.setNb(nb); } } } catch (SolrServerException e) { getLogger().warning("Cannot access Solr server no suggestion number returned"); } } return suggests; } catch (IOException e) { getResponse().setStatus(Status.SERVER_ERROR_INTERNAL, "Cannot read Thesaurs : " + thesaurusName); return null; } }
From source file:org.sleuthkit.autopsy.keywordsearch.TermComponentQuery.java
License:Open Source License
protected List<Term> executeQuery(SolrQuery q) throws NoOpenCoreException { try {//w w w.j av a 2 s .com Server solrServer = KeywordSearch.getServer(); TermsResponse tr = solrServer.queryTerms(q); List<Term> termsCol = tr.getTerms(TERMS_SEARCH_FIELD); return termsCol; } catch (KeywordSearchModuleException ex) { logger.log(Level.WARNING, "Error executing the regex terms query: " + keyword.getQuery(), ex); //NON-NLS return null; //no need to create result view, just display error dialog } }
From source file:peltomaa.sukija.QueryResponsePrinter.java
License:Open Source License
public static final void print(PrintStream out, QueryResponse response) { NamedList<Object> nl = response.getHeader(); out.println(nl.toString());/*from www . ja va 2s. c o m*/ TermsResponse tr = response.getTermsResponse(); Map<String, List<TermsResponse.Term>> tmap = tr.getTermMap(); Iterator<Map.Entry<String, List<TermsResponse.Term>>> i = tmap.entrySet().iterator(); while (i.hasNext()) { Map.Entry<String, List<TermsResponse.Term>> e = i.next(); out.println(e.getKey()); for (TermsResponse.Term m : e.getValue()) { out.println(m.getTerm() + " " + m.getFrequency()); } } out.println("========================="); List<TermsResponse.Term> tterms = tr.getTerms("text"); for (TermsResponse.Term t : tr.getTerms("text")) { // out.println (t.getTerm()); } }