如何在Windows中将文件上传到Solr?

时间:2011-10-28 17:47:53

标签: windows solr

我需要验证文本提取是否适用于Windows Server 2003上的Solr安装。我找到的将文件上传到Solr的所有示例都使用curl,如下所示。

curl "http://localhost:8983/solr/update/extract?&extractOnly=true"  --data-binary @tutorial.html  -H 'Content-type:text/html'

如何在Windows中执行此操作?我想测试上传pdf和Word文档然后确认我可以使用Solr管理页面搜索文档中包含的单词。

10 个答案:

答案 0 :(得分:18)

示例来自post.jar(请参阅example\exampledocs的文件夹apache-solr-X.X.X.zip):

java -jar post.jar -h

This is a simple command line tool for POSTing raw data to a Solr
port.  Data can be read from files specified as commandline args,
as raw commandline arg strings, or via STDIN.
Examples:
  java -jar post.jar *.xml
  java -Ddata=args  -jar post.jar '<delete><id>42</id></delete>'
  java -Ddata=stdin -jar post.jar < hd.xml
  java -Durl=http://localhost:8983/solr/update/csv -Dtype=text/csv -jar post.jar *.csv
  java -Durl=http://localhost:8983/solr/update/json -Dtype=application/json -jar post.jar *.json
  java -Durl=http://localhost:8983/solr/update/extract?literal.id=a -Dtype=application/pdf -jar post.jar a.pdf
Other options controlled by System Properties include the Solr
URL to POST to, the Content-Type of the data, whether a commit
or optimize should be executed, and whether the response should
be written to STDOUT. These are the defaults for all System Properties:
  -Ddata=files
  -Dtype=application/xml
  -Durl=http://localhost:8983/solr/update
  -Dcommit=yes
  -Doptimize=no
  -Dout=no

OR

Windows PowerShell 3.0有一个Invoke-WebRequest命令,肯定可以使用它。请参阅this blog post

Invoke-WebRequest

答案 1 :(得分:3)

使用solr 5.0,您必须在更新文档时提及核心名称。因此,在exampledocs中发布所有示例的命令将是:

  

java -Dc =“core_name”-jar post.jar * .xml

此处将core_name替换为核心名称

答案 2 :(得分:2)

在Windows上使用Solr 6.1我能够使用solr-core-x.y.z.jar中的SimplePostTool递归索引文件夹,如下所示:

java -classpath C:\Solr\solr-6.1.0\dist\solr-core-6.1.0.jar -Dauto=yes -Dc=yourcorename -Ddata=files -Drecursive=yes org.apache.solr.util.SimplePostTool C:\Solr\solr-6.1.0\docs

您需要将“C:\ Solr \ solr-6.1.0 \”替换为solr文件夹,为solr-core-6.1.0.jar指定正确的版本号,将文件夹设置为文件位置你想索引并确保核心已存在。

答案 3 :(得分:1)

可以有以下选项 -

  • 使用stream.file(用于远程网址的stream.url)参数从浏览器激发URL,该参数指向本地文件系统上的文件,例如sample_url
  • 为Windows安装cgywin / curl,这将帮助您触发这些网址。
  • 写一个简短的program using Solrj(或任何其他solr客户端)来发布这些文档。

答案 4 :(得分:1)

您可以尝试使用Firefox Poster Plugin ..我尝试了几次下载,但它们运行良好:)

答案 5 :(得分:1)

你可以试试这个:

  

C:\ Java \ Libs \ apache-solr-4.0.0-BETA \ example&gt;“C:\ Program Files(x86)\ Internet Explorer \ iexplore.exe”“http:// localhost:8983 / solr / collection1 /更新提交=真安培; stream.contentType =文本/ CSV;字符集= utf-8的   &安培; stream.file = C:/Java/Libs/apache-solr-4.0.0-BETA/example/exampledocs/listado_talleres_new.csv“

答案 6 :(得分:1)

如果要使用cURL命令将文件发布到solr,则需要从cURL Home下载此实用程序。在路径environmental variable of the windows中提供cURL.exe的路径,然后您可以使用您查询的命令

curl "http://localhost:8983/solr/update/extract?&extractOnly=true" --data-binary @"location of file/test.pdf" -H 'Content-type:application/pdf'

即。您需要更改内容类型。

  

将目录发布到Solr的另一种方法是使用Solr的examples目录中的'post.jar'实用程序 - 请记住此实用程序不能用于生产。

以下是示例命令。

   java -Ddata=files -Dtype=html -Dfiletypes=htm,html -Dauto=yes -Drecursive=yes -jar post.jar "Drive_letter:\yourpath\."

以上与Solr 4.0完美配合

答案 7 :(得分:0)

对于Windows,我使用此命令:

java -classpath %SOLR_HOME%\dist\solr-core-6.5.1.jar -Dauto=yes -Dc=books -Ddata=files -Drecursive=yes org.apache.solr.util.SimplePostTool c:\apache-solr-6.5.1\server\solr\books\data\index\*.*

答案 8 :(得分:0)

要使用Powershell执行此操作,请运行以下命令:

$header =  @{"Content-type"="text/plain"; "charset"="utf-8"};

Invoke-WebRequest -Uri http://localhost:8983/solr/YOUR_CORE_NAME/update/csv -Headers $header -InFile "C:\data.csv" -Method Post

答案 9 :(得分:0)

通过命令行首先导航到Solr的exampledocs文件夹并执行以下命令

D:\solr-7.5.0\example\exampledocs>java -Dc=onlycorename -Dtype=application/json -jar post.jar books.json

或者,从示例文件夹中执行以下命令

D:\Open Source Servers\solr-7.5.0\example>java -Dc=films -Dtype=application/xml -jar exampledocs/post.jar exampledocs/*.xml