com.bindez.nlp.extract.ngram.term_frequency.TermFrequencyTask.java Source code

Java tutorial

Introduction

Here is the source code for com.bindez.nlp.extract.ngram.term_frequency.TermFrequencyTask.java

Source

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package com.bindez.nlp.extract.ngram.term_frequency;

import java.util.concurrent.Callable;
import org.apache.solr.client.solrj.SolrQuery;
import org.apache.solr.client.solrj.impl.HttpSolrServer;
import org.apache.solr.client.solrj.response.QueryResponse;
import org.apache.solr.common.SolrDocument;
import org.apache.solr.common.SolrDocumentList;

/**
 *
 * @author ahk
 */
public class TermFrequencyTask implements Callable<TermResult> {

    private HttpSolrServer server;
    private String term;

    TermFrequencyTask(String terms, HttpSolrServer server) {
        this.term = terms;
        this.server = server; //new SolrServer().getSolrServer();
    }

    @Override
    public TermResult call() throws Exception {
        TermResult result = new TermResult();
        HttpSolrServer tfServer = this.server; //SolrServer.getSolrServer();
        /*
            SolrQuery query = new SolrQuery();
            query.setRequestHandler("/terms");
            query.set("terms.fl", "content");
            query.set("terms.regex", term) ;
            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 solrTerm = null ;
            if(terms != null && terms.size() > 0){
             solrTerm = terms.get(0);
             result.setTerm(term);
             result.setFrequency(solrTerm.getFrequency());
            }else{
                result.setTerm(term);
                result.setFrequency(0);
            }
        */

        SolrQuery query = new SolrQuery();
        query.set("q", "content:" + term);
        query.add("fl", "fl:totaltermfreq(content," + term + ")");
        QueryResponse response = server.query(query);
        SolrDocumentList results = response.getResults();
        for (SolrDocument result1 : results) {
            String count = result1.getFieldValue("fl").toString();
            result.setTerm(term);
            result.setFrequency(Long.parseLong(count));

        }

        return result;
    }
}