Solr json,xml等文件数据导入(添加索引)linux下操作

时间:2021-03-22 00:04:52

使用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=0 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即表示把后台返回的信息输出打印到控制台