Example usage for org.apache.solr.client.solrj.response TermsResponse getTerms

List of usage examples for org.apache.solr.client.solrj.response TermsResponse getTerms

Introduction

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

Prototype

public List<Term> getTerms(String field) 

Source Link

Document

Get's the term list for a given field

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

}