List of usage examples for org.apache.solr.client.solrj.response QueryResponse getTermsResponse
public TermsResponse getTermsResponse()
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 ava 2s.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.frank.search.solr.core.ResultHelper.java
License:Apache License
static Map<String, List<TermsFieldEntry>> convertTermsQueryResponseToTermsMap(QueryResponse response) { if (response == null || response.getTermsResponse() == null || response.getTermsResponse().getTermMap() == null) { return Collections.emptyMap(); }// w w w . j av a2s. co m TermsResponse termsResponse = response.getTermsResponse(); Map<String, List<TermsFieldEntry>> result = new LinkedHashMap<String, List<TermsFieldEntry>>( termsResponse.getTermMap().size()); for (Entry<String, List<Term>> entry : termsResponse.getTermMap().entrySet()) { List<TermsFieldEntry> terms = new ArrayList<TermsFieldEntry>(entry.getValue().size()); for (Term term : entry.getValue()) { SimpleTermsFieldEntry termsEntry = new SimpleTermsFieldEntry(term.getTerm(), term.getFrequency()); termsEntry.setField(entry.getKey()); terms.add(termsEntry); } result.put(entry.getKey(), terms); } return result; }
From source file:com.ifactory.press.db.solr.processor.FieldMergingProcessorTest.java
License:Apache License
private List<TermsResponse.Term> getTerms(String field) throws SolrServerException { SolrQuery solrQuery = new SolrQuery(); solrQuery.setParam(CommonParams.QT, "/terms"); solrQuery.setParam(TermsParams.TERMS, true); solrQuery.setParam(TermsParams.TERMS_LIMIT, "100"); solrQuery.setParam(TermsParams.TERMS_FIELD, field); QueryResponse resp = solr.query(solrQuery); return resp.getTermsResponse().getTermMap().get(field); }
From source file:com.mmj.app.lucene.solr.client.SolrClient.java
License:Open Source License
/** * solrautoComplete/*from w w w .j a va 2 s .c o m*/ * * @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:com.temenos.interaction.commands.solr.TermsCommand.java
License:Open Source License
public Result execute(InteractionContext ctx) { MultivaluedMap<String, String> queryParams = ctx.getQueryParameters(); String entityName = ctx.getCurrentState().getEntityName(); try {//from www .j a v a 2 s .c o m String queryStr = queryParams.getFirst("q"); SolrQuery query = new SolrQuery(); query.setRequestHandler("/terms"); // query.setFields("id", "name", "mnemonic", "address", "postcode"); query.setQuery(queryStr); // TODO make these configurable query.addTermsField("name"); query.addTermsField("mnemonic"); query.setTermsPrefix(queryStr); query.setTermsSortString("count"); query.setTerms(true); query.setTermsLimit(10); QueryResponse rsp = solrServer.query(query); ctx.setResource(buildCollectionResource(entityName, "name", rsp.getTermsResponse().getTermMap())); return Result.SUCCESS; } catch (SolrServerException e) { logger.error("An unexpected error occurred while querying Solr", e); } return Result.FAILURE; }
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 ww w . j a v a 2 s . 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.springframework.data.solr.core.ResultHelper.java
License:Apache License
static Map<String, List<TermsFieldEntry>> convertTermsQueryResponseToTermsMap(QueryResponse response) { if (response == null || response.getTermsResponse() == null || response.getTermsResponse().getTermMap() == null) { return Collections.emptyMap(); }// w ww .j a v a 2 s . c o m TermsResponse termsResponse = response.getTermsResponse(); Map<String, List<TermsFieldEntry>> result = new LinkedHashMap<String, List<TermsFieldEntry>>( termsResponse.getTermMap().size()); for (Map.Entry<String, List<Term>> entry : termsResponse.getTermMap().entrySet()) { List<TermsFieldEntry> terms = new ArrayList<TermsFieldEntry>(entry.getValue().size()); for (Term term : entry.getValue()) { SimpleTermsFieldEntry termsEntry = new SimpleTermsFieldEntry(term.getTerm(), term.getFrequency()); termsEntry.setField(entry.getKey()); terms.add(termsEntry); } result.put(entry.getKey(), terms); } return result; }
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 w w w. j a v a 2 s . 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()); } }