前一篇文章介绍了如何定义Solr的Schema,有了数据的结构定义,下来我们就来看看如何写入数据吧。 将文档数据写入到Solr有很多种方式, 你可以使用xml文档,json文档,csv文档,对于这三种方式,你可以在Linux下使用curl方便的导入数据,比如使用xml文档,你可以这样写:
添加xml文档
curl http://localhost:8983/solr/update?commit=true -H "Content-Type: text/xml" --data-binary '<add><doc><field name="id">testdoc</field></doc></add>'
添加json文档
curl http://localhost:8983/solr/update/json -H 'Content-type:application/json' -d ' [ {"id" : "TestDoc1", "title" : "test1"}, {"id" : "TestDoc2", "title" : "another test"} ]'
当然,你还可以使用DIH(DataImportHandler,这是Solr的一个处理器,用来从其他的异构系统批量导入数据)。
在windows下如果想要导入文件,可以使用文档例子目录下(example\exampledocs)的Post.jar程序来导入文档,在我们搭建好Solr的环境以后,系统里面还没有任何的文档数据,现在我们就试着使用post.jar程序来导入文档,你可以使用命令行(cmd程序),进入到solr的文档例子目录 (example\exampledocs ),然后输入 java -jar post.jar *.xml ,输入完成后回车,数据就导入到了Solr中。现在我们就可以通过Solr的statistics页面来查看是否已经导入数据,如下图:
从图中看到,我们已经导入了17个文档。如果你想查看导入的文档的内容,可以在Solr Admin首页(http://localhost:8983/solr/admin/)的Qeury string中输入"*:*",然后点击Search按钮,你就可以看到我们刚刚导入到系统中的前10个文档的内容。
上面介绍了几种文档的导入方法,DIH相对比较复杂一点,我们后边专门来讲,除此以外的几种方法,如果测试功能时用一下还好,如果正式的生产环境不可能这样的来做,这时我们就需要一些功能强大一些的客户端,方便我们将Solr的功能引入自己的系统。我们可以访问http://wiki.apache.org/solr/IntegratingSolr这个页面,这个页面上列出来各种应用程序环境中可以使用的客户端,比如Java应用程序可以使用SolrJ,Python可以使用SolrPython,Javascript 可以使用 ajax Solr,而对于.net而言,我个人觉得Solrnet是个不错的选择,后续的文章我也会选择使用Solrnet作为演示用的客户端。下一篇文章我会专门讲一下Solrnet的使用。