com.bindez.nlp.extract.segmentor.WordSegmentorNgramTask.java Source code

Java tutorial

Introduction

Here is the source code for com.bindez.nlp.extract.segmentor.WordSegmentorNgramTask.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.segmentor;

import com.bindez.nlp.extract.ngram.term_frequency.TermResult;
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 WordSegmentorNgramTask implements Callable<TermResult> {
    private HttpSolrServer server;
    private String term;

    WordSegmentorNgramTask(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.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;
    }
}