后置工具

Solr 包含一个简单的命令行工具,用于将各种类型的内容发布到 Solr 服务器,该服务器是 bin/solr CLI 的一部分。

此工具旨在供探索 Solr 功能的新用户使用,并不打算作为将文档编入生产系统的可靠解决方案。
您可能熟悉 SimplePostTool 和 bin/post Unix shell 脚本。虽然它仍然可用,但已弃用,并且将在 Solr 10 中删除。

要运行它,请打开一个窗口并输入

$ bin/solr post -url http://localhost:8983/gettingstarted/update example/films/films.json

这将联系 localhost:8983 上的服务器。-help(或仅 -h)选项将输出有关其用法的详细信息(即 bin/solr post -help)

使用 bin/solr post 工具

使用 bin/solr post 时,您必须指定 url(即更新处理程序的完整路径)或提供 c 集合/核心名称。

这指定了相同的目标集合:-url http://localhost:8983/gettingstarted/update-c gettingstarted

bin/solr post 的基本用法是

$ bin/solr post -h
Usage: post -url http://localhost:8983/gettingstarted/update [OPTIONS] <files|directories|urls|-d ["...",...]>
    or post -help

OPTIONS
=======
  Solr options:
    -url <base Solr update URL>
    -commit issue a commit
    -u or -user <user:pass> (sets BasicAuth credentials)

  Web crawl options:
    -recursive <depth> (default: 1)
    -delay <seconds> (default: 10)

  Directory crawl options:
    -delay <seconds> (default: 0)

  stdin/args options:
    -type <content/type> (default: application/json)


  Other options:
    -filetypes <type>[,<type>,...] (default: xml,json,csv,pdf,doc,docx,ppt,pptx,xls,xlsx,odt,odp,ods,ott,otp,ots,rtf,htm,html,txt,log)
    -params "<key>=<value>[&<key>=<value>...]" (values must be URL-encoded; these pass through to Solr update request)
    -out output the Solr responses to console
    -format solr (sends application/json content as Solr commands to /update instead of /update/json/docs

Examples:

* JSON file: bin/solr post -url http://localhost:8983/wizbang/update events.json
* XML files: bin/solr post -url http://localhost:8983/records/update article*.xml
* CSV file: bin/solr post -url http://localhost:8983/signals/update LATEST-signals.csv
* Directory of files: bin/solr post -filetypes xml,json,csv -url http://localhost:8983/myfiles/update ~/Documents
* Web crawl: bin/solr post -mode web -url http://localhost:8983/gettingstarted/update -recursive 1 -delay 1 https://solr.net.cn/
* Standard input (stdin): echo '{commit: {}}' | bin/solr post -mode stdin -url http://localhost:8983/my_collection/update -out
* Data as string: bin/solr post -url http://localhost:8983/signals/update -mode args -type text/csv -out $'id,value\n1,0.47'

使用 bin/solr post 的示例

有几种使用 bin/solr post 的方法。本节提供几个示例。

编制 XML 索引

将所有文件扩展名为 .xml 的文档添加到名为 gettingstarted 的集合中。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update *.xml

将所有文件扩展名为 .xml 的文档添加到在端口 8984 上运行的 Solr 中的 gettingstarted 集合中。

bin/solr post -url http://localhost:8984/solr/gettingstarted/update *.xml

发送 XML 参数以从 gettingstarted 中删除文档。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update -mode args -type application/xml '<delete><id>42</id></delete>'

编制 CSV 和 JSON 索引

将当前目录中的所有 CSV 和 JSON 文件编入 gettingstarted

bin/solr post -c gettingstarted -filetypes json,csv .

将制表符分隔的文件编入 gettingstarted

bin/solr post -url http://localhost:8984/solr/signals/update -params "separator=%09" -type text/csv data.tsv

需要内容类型(-type)参数来将文件视为适当的类型,否则它将被忽略并记录一条警告,因为它不知道 .tsv 文件是什么类型的文件。 CSV 处理程序 支持 separator 参数,并使用 -params 设置传递。

编制 JSON 索引

将所有 JSON 文件编入 gettingstarted 中。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update *.json

编制富文档索引(PDF、Word、HTML 等)

将 PDF 文件编入 gettingstarted 中。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update a.pdf

自动检测文件夹中的内容类型,并递归扫描文档以编入 gettingstarted 中。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update afolder/

自动检测文件夹中的内容类型,但将其限制为 PPT 和 HTML 文件,并索引到 gettingstarted 中。

bin/solr post -url http://localhost:8983/solr/gettingstarted/update -filetypes ppt,html afolder/

索引到受密码保护的 Solr(基本身份验证)

使用用户名“solr”和密码“SolrRocks”将 PDF 作为用户“solr”进行索引

bin/solr post -u solr:SolrRocks -url http://localhost:8983/solr/gettingstarted/update a.pdf