Как я могу загрузить файл в Solr в Windows? - PullRequest
12 голосов
/ 28 октября 2011

Мне нужно убедиться, что извлечение текста работает в моей установке Solr на Windows Server 2003. Все примеры, которые я нашел для загрузки файлов в 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 ]

18 голосов
/ 28 октября 2011

С примерами поставляется 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, которая наверняка может быть использована для этого. См. это сообщение в блоге .

Invoke-WebRequest

3 голосов
/ 27 апреля 2016

При использовании solr 5.0 вы должны указывать имя ядра при обновлении документов.Таким образом, команда для публикации всех примеров в примерах:с названием ядра

2 голосов
/ 13 июля 2016

Используя Solr 6.1 в Windows, я смог рекурсивно индексировать папку с помощью SimplePostTool из solr-core-x.y.z.jar, например так:

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, установить в папке расположение файла Вы хотите проиндексировать и убедиться, что ядро ​​уже существует.

1 голос
/ 08 февраля 2013

Если вы хотите использовать команду cURL для публикации файлов в solr, вам необходимо загрузить эту утилиту из cURL Home . Укажите путь к cURL.exe в пути переменная среды Windows , а затем вы можете использовать команду, которую вы запросили для

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

т.е. Вы должны изменить тип контента.

Еще один способ опубликовать каталог в Solr - использовать утилиту 'post.jar' в каталоге примеров Solr - помните, что эта утилита не для производственного использования.

Вот пример команды.

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

Вышеописанное прекрасно работает с Solr 4.0

1 голос
/ 13 сентября 2012

Вы можете попробовать это:

C: \ Java \ Libs \ apache-solr-4.0.0-BETA \ example> "C: \ Program Files (x86) \ Internet Explorer \ iexplore.exe" "http://localhost:8983/solr/collection1/update?commit=true&stream.contentType=text/csv;charset=utf-8 & Stream.file = C: /Java/Libs/apache-solr-4.0.0-BETA/example/exampledocs/listado_talleres_new.csv "

1 голос
/ 05 апреля 2012

Вы можете попробовать использовать плагин Firefox Poster .. Я попробовал пару загрузок, и они отлично работали:)

1 голос
/ 28 октября 2011

Может иметь следующие параметры -

  • Запустить URL-адрес из браузера, используя параметр stream.file (stream.url для удаленных URL-адресов), который указывает на файл в локальной файловой системе, например, sample_url
  • Установите cgywin / curl для Windows, который поможет вам запустить эти URL.
  • Напишите короткую программу, используя Solrj (или любой другой клиент solr) для публикации этих документов.
0 голосов
/ 02 января 2019

Через командную строку сначала перейдите в папку exampledocs в Solr и выполните приведенную ниже команду

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
0 голосов
/ 30 декабря 2017

Чтобы сделать это с помощью 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
0 голосов
/ 27 июня 2017

Для 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\*.*
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...