永发信息网

云服务器 json怎么导入到solr

答案:1  悬赏:60  手机版
解决时间 2021-03-21 20:38
  • 提问者网友:沉默菋噵
  • 2021-03-21 09:24
云服务器 json怎么导入到solr
最佳答案
  • 五星知识达人网友:何以畏孤独
  • 2021-03-21 10:28
“小鸟云”是深圳前海小鸟云计算有限公司旗下的云计算服务品牌,专注为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。
public class SolrRecordHandler implements Runnable{
//生产者-消费者 solr doc
private ArrayBlockingQueue docs=new ArrayBlockingQueue(5000);
public void wrap(ResultSet rs){
SolrInputDocument doc=new SolrInputDocument();
try {
ResultSetMetaData rsm = rs.getMetaData();
int numColumns = rsm.getColumnCount();
for (int i = 1; i < (numColumns + 1); i++)
{
doc.addField(rsm.getColumnName(i), rs.getObject(i));
}

} catch (Exception e) {
e.printStackTrace();
return null;
}
docs.add(doc);
}
@Override
public void run() {
logger.info("solr 写线程启动开始。。。。");
SolrCore core = cores.getCore("review");
UpdateRequestProcessorChain chain= core.getUpdateProcessingChain(null);
SolrParams param=new ModifiableSolrParams();
SolrQueryRequestBase req=new SolrQueryRequestBase(core,param){};
SolrQueryResponse rsp=new SolrQueryResponse();
UpdateRequestProcessor processor=chain.createProcessor(req, rsp);
//不停地从队列中读取元素,直到任务结束
SolrInputDocument doc;
AddUpdateCommand acmd=new AddUpdateCommand(req);
while(true){
try {
doc=docs.take();
//读取到一个空的doc,则表明任务结束
if(doc.isEmpty()){
break;
}
acmd.solrDoc=doc;
processor.processAdd(acmd);
} catch (Exception e) {
e.printStackTrace();
}
}
logger.info("solr index thread finished!");
//任务完成,则提交
try {
CommitUpdateCommand cmd=new CommitUpdateCommand(req, false);
processor.processCommit(cmd);
} catch (IOException e) {
e.printStackTrace();
}finally{
try {
processor.finish();
} catch (IOException e) {
e.printStackTrace();
}
}
isfinished.set(true);
}
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯