功能设想:
在网页端,可以直观地看见爬到文件,待处理的文件的类型和数目;可以选择文件类型(比如html,pdf,word等)进行处理,并且可以对每一种文件类型选择所需的属性。
用户还可以选择要保存数据到哪个数据库,或者哪个solr


/*
接受前端数据,调用newDataHandle新创建一个DataHandlerControler对数据进行处理
*/
class Entry
{
    private DataHandlerControler controler;
    public void newDataHandler(前端数据);

}

/*
工具类
定义一种文件类型和被需求的属性
*/
class DataType
{
    private int type;//文件类型
    private ArrayList attributes();//定义被需求的属性
    public DataType(int type, ArrayList attributes);
}

/*
工具类
返回对数据库或者solr的连接
*/
class Connection
{
    public static SqlConnection instance(DataBaseInfo info);
    public static ISolrOperations instance(SolrInfo info);
}

/*
从数据库获取数据,处理数据,并上传数据
*/
class DataHandlerControler implements Runnable
{
    private ArrayList<DataType> dataneed;//保存被需求的文件类型和属性
    private SqlConnection dbto;//要传到的数据库连接
    private SqlConnection dbfrom;//数据来源的数据库
    private ISolrOperations solr;//要传到的solr连接
    private FinalData finaldata;//处理后数据
    private String rawdata;//为处理数据
    public DataHandlerControler(ArrayList dataneed,DataBaseInfo dbinfo,SolrInfo solrinfo);
    public void run();//线程run函数,从数据库获取数据,调用DataHandler处理数据,并上传数据
    private String getdata();//从数据库获取数据,返回字符串
    private boolean uploaddatatodb();//将数据上传到数据库,返回是否成功
    private boolean uploaddatatosolr();//将数据上传到solr,返回是否成功
}

/*
工具类
对数据进行处理,并根据要求的属性返回需要的数据
*/
class DataHandler
{
    public static FinalData dealpdf(DataType dt,String rawdata);
    public static FinalData dealword(DataType dt,String rawdata);
    public static FinalData dealhtml(DataType dt,String rawdata);
    ...
}

/*
工具类
对数据进行翻译,返回翻译后的数据
*/
class Translator
{
    public static String translate(String rawdata);
}

/*
工具类
对字符串分词,返回关键词
*/
class Divider
{
    public static ArrayList divide(String data);
}