Як я можу завантажити файл у Solr у Windows?

Мені потрібно переконатися, що вилучення тексту працює над встановленням 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.

12

9 Відповіді

З прикладами належить post.jar (див. example \ exampledocs apache-solr-X.X.X.zip ):

java-jar post.jar-h

This is a simple command line tool fАБО POSTing raw data to a Solr
pАБОt.  Data can be read from files specified as commandline args,
as raw commandline arg strings, АБО via STDIN.
Examples:
  java -jar post.jar *.xml
  java -Ddata=args  -jar post.jar '42'
  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
АБО optimize should be executed, and whether the response should
be written to STDOUT. These are the defaults fАБО all System Properties:
  -Ddata=files
  -Dtype=application/xml
  -Durl=http://localhost:8983/solr/update
  -Dcommit=yes
  -Doptimize=no
  -Dout=no

АБО

The Windows PowerShell 3.0 has an Invoke-WebRequest command which fАБО sure could be used fАБО that. See this blog post.

Invoke-WebRequest

18
додано
якщо використовується v1.3, -h не працює. - допоможе
додано Автор Scott Chu, джерело
Я намагався опублікувати PDF-файл, використовуючи post.jar, але я отримую помилку. SimplePostTool: FATAL: Solr повернув помилку # 405 Метод не дозволено.
додано Автор John81, джерело
У мене є Solr, що працює під Tomacat, якщо це має значення. Ось команда, яку я запускаю: java -Durl = localhost: 8080/solr /update/extract?literal.id=addin <-Dtype = application/pdf -jar post.jar addin.pdf
додано Автор John81, джерело
Solr починає правильно під Tomcat. Отримання помилки для спроби завантажити.
додано Автор John81, джерело
ПОПЕРЕДЖЕННЯ: @ Deprecated SolrUpdateServlet не приймає параметри запиту: literal.id = a Якщо ви використовуєте solrj, обов'язково зареєструйте обробника запитів до/update, а потім скористайтеся цією сервлет. Додайте: до вашого solrconfig.xml 28 жовтня 2011 р. 2:32:23 вечора org.apache.solr.common.SolrException log ЧЕРЕВ: помилка обробки "застарілих" команда update: com.ctc.wstx.exc.WstxIOException: Невірний середній байт UTF-8 0xe3 (у символі # 10, байт № -1)
додано Автор John81, джерело
Подумайте, що це є частиною проблеми, оскільки я скопіював над моїм оригінальним solrconfig.xml з тим, що був з Drupal, оскільки я використовую Solr для пошуку в Drupal. Я додав у ключі requestHandler і перезапустив Tomcat, але все одно не вдалося.
додано Автор John81, джерело
Так. Дякую за допомогу!
додано Автор John81, джерело
@ Джон: чи могли б ви надіслати команду, яку ви використовували?
додано Автор jeha, джерело
@John: Я просто спробував скористатися стандартним прикладом: запустив сервер apache-solr-3.4.0 \ example> java -jar start.jar і розмістив файл PDF з apache-solr -3.4.0 \ example \ exampledocs> java -Durl = http://localhost: 8983/solr/update/extract? Literal.id = f & zwnj; oobar -Dtype = application/pdf -jar post.jar foobar.pdf працює для мене ...
додано Автор jeha, джерело
@ Джон: Дивіться журнали Tomcat про помилки - у вас є якісь напевно. Веб-програма Solr неправильно налаштована. При запуску tomcat переконайтеся, що JAVA_OPTS = -Dsolr.solr.home = "... \ apache-solr-3.4.0 \ example \ so & zwnj; lr" вказує на правильний каталог
додано Автор jeha, джерело
@ Джон: У мене є в конфігурації, яку я використовував ... (це конфігурація за замовчуванням, яка поставляється з прикладами 3.4.0)
додано Автор jeha, джерело
@ Джон: Але на ваше оригінальне питання відповідає, чи не так? Може бути, ви повинні поставити нове запитання щодо проблеми конфігурації?
додано Автор jeha, джерело
Чи може хто-небудь, кому вдалося скористатися командлетом PowerShell Invoke-WebRequest (насправді називається curl ), будь ласка, опублікуйте фрагмент? Я постійно отримую 400 помилок (поганий запит). Чи потрібно робити метод "Покласти" або "Публікувати"? Чи можуть дані передаватися як -Infile , або для цього потрібно мати -Body ?
додано Автор Jay Carlton, джерело
Схоже, що я хочу замість шляху до файлу -Method Post та -Body $ string_from_file . Це призвело мене до помилок.
додано Автор Jay Carlton, джерело

За допомогою 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, встановити папку на розташування файлу, який ви хочете Індекс і забезпечення ядра вже існує.

2
додано

З Solr 5.0 ви повинні згадати основне ім'я під час оновлення документів. Отже, команда для розміщення всіх прикладів у прикладі docs буде:

java -Dc = "core_name" -jar post.jar * .xml

Тут замініть ім'я core_name з ім'ям core

2
додано

Можна мати наступні параметри -

  • Fire URL from browser using the stream.file (stream.url for remote urls) parameter which points to the file on the local file system e.g. sample_url
  • Install cgywin/curl for windows, which will help you to fire these urls.
  • Write a short program using Solrj (or any other solr client) to post these documents.
1
додано
Невеликий додаток: CURL доступний для вікон. Також існує libCURL, що дозволяє вставляти CURL-операції на десятки основних мов.
додано Автор aitchnyu, джерело

Якщо ви хочете використовувати команду cURL для публікації файлів на solr, вам потрібно завантажити цю програму з cURL Home . Надайте шлях cURL.exe у шляху змінної середовища в вікнах , а потім ви можете скористатися командою ти запитав про це

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
додано

Ви можете спробувати використовувати плагін Firefox Planner .. Я спробував кілька завантажень, і вони працювали добре :)

1
додано

Ви можете спробувати це:

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
додано
Здається, ви неправильно робите припущення щодо системи. Не могли б ви відредагувати свою відповідь, щоб бути більш загальним? - Також ви не вказуєте, якою має бути ваша відповідь, чи можете ви додати принаймні коротке пояснення?
додано Автор Alexander Kosubek, джерело

Для 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\*.*
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
0
додано