Solr json,xml等檔案資料匯入(新增索引)linux下操作

右介發表於2017-06-07

      使用solr-5.3.1\example\exampledocs下的post.jar來完成資料匯入

      1、將想要匯入的檔案放在solr-5.3.1\example\exampledocs中,如aaa.xml, bbb.json

      2、xml檔案匯入執行命令: java  -Dport=solr埠號  -Dc=目標集合名  -jar  post.jar  aaa.xml

           json檔案匯入執行命令: java  -Dport=solr埠號  -Dtype=application/json  -Dc=目標集合名  -jar  post.jar  bbb.json

           (埠號預設為8983,如solr埠號為8983,語句中可不加 ‘-Dport=solr埠號’)

 

      以下為post.jar的詳細介紹:

      語法: java [SystemProperties] -jar post.jar [-h|-] [<file|folder|url|arg> [<file|folder|url|arg>...]]

      語法屬性:

      SystemProperties:系統屬性

      -h:新增 -h 會列印命令提示資訊

      <file|folder|url|args>:提交資料的幾種不同的形式。file 代表要提交的資料存在於檔案中;folder 代表提交的資料存在於資料夾中;URL 代表地址資源;args 代表提交的資料直接在命令列中敲出來

      系統資料(SystemProperties):

  1. -Dc=<core/collection>  
  2. -Durl=<base Solr update URL> (overrides -Dc option if specified)  
  3. -Ddata=files|web|args|stdin (default=files)  
  4. -Dtype=<content-type> (default=application/xml)  
  5. -Dhost=<host> (default: localhost)  
  6. -Dport=<port> (default: 8983)  
  7. -Dauto=yes|no (default=no)  
  8. -Drecursive=yes|no|<depth> (default=0)  
  9. -Ddelay=<seconds> (default=for files, 10 for web)  
  10. -Dfiletypes=<type>[,<type>,...] (default=xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log)  
  11. -Dparams="<key>=<value>[&<key>=<value>...]" (values must be URL-encoded)  
  12. -Dcommit=yes|no (default=yes)  
  13. -Doptimize=yes|no (default=no)  
  14. -Dout=yes|no (default=no)     

 -D是命令列下指定系統屬性的固定字首,

  c表示core名稱,你需要對solr admin裡的哪個core進行索引資料新增/修改/刪除

  url表示solr admin後臺索引更新的請求URL,這個URL是固定的,一般格式是http://host:port/solr/${coreName}/update,這裡的${coreName}和上面的c屬性值保持一致

  data表示你要提交資料的幾種模式,files模式表示你要提交的資料在檔案裡

  web表示你要提交的資料在網際網路上的一個URL表示的資原始檔裡

  args表示你要提交的資料你會直接在post.jar命令後面直接輸入

  stdin表示你要提交的資料需要在dos命令列下通過System.in輸入流臨時接收,跟args有點類似, 但不同的是,stdin模式下,post.jar後面不需要指定任何引數,直接回車即可,然後程式會等待使用者輸入, 使用者輸入完畢再回車,post.jar會接收到使用者輸入,post.jar重新被喚醒繼續執行。而args是直接在post.jar後面輸入引數,沒有一箇中斷過程,而stdin模式下如果使用者一直沒有輸入,那post.jar就會一直阻塞在那裡等待使用者輸入為止。

  type表示你要提交資料的MIME型別,預設是application/xml即預設會當作是XML來處理

  host表示你要連結的SOlr Admin部署伺服器的主機名或者IP地址,預設是localhost

  port表示你要連結的Solr Admin部署的Web容器監聽的埠號,預設post.jar裡設定為8983,port具體值取決於你實際部署環境而定

  auto表示是否自動猜測檔案型別

  recursive表示是否遞迴,這裡遞迴有兩種情況,比如你data=folder即表示是否遞迴查詢資料夾下的所有檔案,如果你data=web即表示是否遞迴抓取URL,設定為no即表示不遞迴操作,設定為一個數字,即表示遞迴深度

  delay:這裡的時間延遲也分兩種,如果你post的是file,那麼每個file的post間隔為0,即不做延遲處理,而如果你是post的是網路上的一個url資源,因為需要收到對方伺服器的訪問限制,所以必須要做一個抓取頻率限制即每抓一個睡眠一會兒,否則抓取太快太頻率容易被對方封IP。

  filetypes表示post.jar支援提交哪些檔案型別,後面有列出預設支援的檔案型別,如果你想覆蓋預設值,那麼請指定此引數

  params表示需要追加到Solr Admin的請求URL後面的請求引數如id=1&name=yida之類的

  commit表示是否提交到solr admin後臺進行索引寫入,設定為false表示不提交至sor admin,但設定為true也不一定就意味著就一定會把索引寫入磁碟,這取決於solrconfig中directory配置的實現是什麼,如果配置的是RAMDirectory,就僅僅只在記憶體中操作了。

  optimize表示是否需要對索引進行優化操作,預設為no即表示不對索引進行優化

  out即OutputStream表示輸出流,這個引數作用就是,你請求Solr Admin新增索引資料,Solr Admin後臺會返回資料給你,Solr Admin後臺返回的資料你拿什麼輸出流來接收,預設是System.out即表示把後臺返回的資訊輸出列印到控制檯

相關文章