前一篇文章介紹了如何定義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的使用。