功能设想:
在网页端,可以直观地看见爬到文件,待处理的文件的类型和数目;可以选择文件类型(比如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);
}