solr 有几种导入数据的方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了solr 有几种导入数据的方式相关的知识,希望对你有一定的参考价值。

solr数据导入,经过这几天的查资料,我觉得solr数据导入可以有三种方式:
1、编写数据xml文件,通过post.jar导入;

2、通过DIH导入;

3、利用solrj导入数据;

现针对第三种方式进行研究,在第一步中写了一段小的测试代码,可以参考:http://wiki.apache.org/solr/Solrj#Streaming_documents_for_an_update

具体的代码解释如下:

String url = "http://localhost:8080/solr";
HttpSolrServer server = new HttpSolrServer(url);
//If you wish to delete all the data from the index, do this
//server.deleteByQuery( "*:*" );
//Construct a document
SolrInputDocument doc1 = new SolrInputDocument();
doc1.addField( "id", "id1_solrj" );
doc1.addField( "type", "doc1_solrj" );
doc1.addField( "name", "name1_solrj" );
//Construct another document
SolrInputDocument doc2 = new SolrInputDocument();
doc2.addField( "id", "id2" );
doc2.addField( "type", "doc2_solrj" );
doc2.addField( "name", "name2_solrj" );
//Create a collection of documents
Collection<SolrInputDocument> docs = new ArrayList<SolrInputDocument>();
docs.add(doc1);
docs.add(doc2);
//Do a commit
try
server.add(docs);
server.commit();
catch (SolrServerException e)
System.out.println("server commit error, error code:");
e.printStackTrace();
catch (IOException e)
System.out.println("server commit error, error code:");
e.printStackTrace();



该端代码执行后报异常:expect mime type application/octet-stream but got text/html

没找到这个的解决办法,根据提示好像是说期望的类型和服务器反馈的类型不匹配

最后的解决办法是这样的:

之前在配置solr服务器的时候将solr解压路径\solr-4.8.1\example\solr下的solr.xml用\solr-4.8.1\example\multicore下的solr.xml文件进行了替换,目的是为了引入core0和core1,现在需要将这个动作进行回滚,并且修改collection1下的conf下的schema.xml文件,修改为对应的需要的列定义。然后执行以上的代码就不会产生问题。

原因我也不太明白,感觉应该是collection1的配置和core1、core0、乃至之前文章提到过的solrtest的配置应该不太一样。原因待查。不过现在已经可以通过客户端的方式将数据导入solr服务器,并在前端可以查询到相应的数据。
参考技术A 什么绝对阿,肯定是不对.不然不会没有数据的.多检查下.或者把数据库发给我

(sqlserver)如何还原一个数据库,有几种方式?

您好!数据库的还原操作主要有以下几种:
一、使用SQK的企业管理器来进行图形化的还原(打开管理器在还原的数据库上右击任务—还原;然后在弹出的对话框中:选择要还原源文件和要还原目标的)
二、使用SQL代码还原:RESTORE
DATABASE
数据库名
FROM
DISK=
'F:\my.bak
'
WITH
REPLACE。
三、做一个作业代理:在步骤哪里加入以上代码;可以实现定时自动还原。
四、使用附加的方式;这个需要有二个文件(日志和数据文件)
五、使用其它软件进行还原。
说明:还原可以从低版本到高版本;反之则出错。
参考技术A 如果我没理解错误的话,你应该是希望两个表的内容同时展示,类似于一个表那样,这种展示是有条件的,就是两个表的列需要类型一致,或是可以进行转换。
你可以使用
select
*
from
table1
union
all
select
*
from
table2

以上是关于solr 有几种导入数据的方式的主要内容,如果未能解决你的问题,请参考以下文章

(sqlserver)如何还原一个数据库,有几种方式?

Java web项目有几种导入方式

9.Solr4.10.3数据导入(post.jar方式和curl方式)

Python八种数据导入方法,你掌握了吗?赶紧收藏

Python八种数据导入方法,你掌握了吗?赶紧收藏

MySql数据导入导出