Example usage for org.apache.solr.client.solrj.response QueryResponse getTermsResponse

List of usage examples for org.apache.solr.client.solrj.response QueryResponse getTermsResponse

Introduction

In this page you can find the example usage for org.apache.solr.client.solrj.response QueryResponse getTermsResponse.

Prototype

public TermsResponse getTermsResponse() 

Source Link

Usage

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());
    }

}