FileNotFoundException при загрузке файла

Я новичок в Solr (установил его вчера...), и у меня уже есть первая проблема.

У меня есть мой каталог Solr-Indexing, куда я скопировал post.jar, и где у меня есть основной каталог Collection1. В Collection1 у меня есть каталог conf с schema.xml, solrconfig.xml и некоторыми pdf-документами (которые я хочу импортировать/индексировать).

Я запускаю свой экземпляр Solr с java -Dsolr.solr.home="D:/download/Solr-Test/Solr-Indexing" -jar start.jar (в журнале проблем нет), а затем пытаюсь загрузить PDF-файл в свою коллекцию с помощью команды java -Dtype=application/pdf -Durl=http://localhost:8983/solr/collection1/update/extract -jar post.jar collection1/Lucene.pdf.

Вывод следующий:

D:\download\Solr-Test\Solr-Indexing>java -Dtype=application/pdf -Durl=http://localhost:8983/solr/collection1/update/extract -jar post.jar collection1/Lucene.pdf
SimplePostTool version 1.5
Posting files to base url http://localhost:8983/solr/collection1/update/extract using content-type application/pdf..
POSTing file Lucene.pdf
SimplePostTool: WARNING: Solr returned an error #404 Not Found
SimplePostTool: WARNING: IOException while reading response: java.io.FileNotFoundException: http://localhost:8983/solr/collection1/update/extract
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/collection1/update/extract..
SimplePostTool: WARNING: Solr returned an error #404 Not Found for url http://localhost:8983/solr/collection1/update/extract?commit=true
Time spent: 0:00:00.015

В чем проблема? Я что-то пропустил?

Что я вижу, так это то, что URL-адрес в браузере http://localhost:8983/solr/#/Collection1 с #, а я использую без #. Может ли это быть проблемой? Я тоже пытался добавить # в свою команду, но потом получаю сообщение:

D:\download\Solr-Test\Solr-Indexing>java -Dtype=application/pdf -Durl=http://localhost:8983/solr/#/collection1/update/extract -jar post.jar collection1/Lucene.pdf
SimplePostTool version 1.5
Posting files to base url http://localhost:8983/solr/#/collection1/update/extract using content-type application/pdf..
POSTing file Lucene.pdf
SimplePostTool: WARNING: Solr returned an error #405 HTTP method POST is not supported by this URL
SimplePostTool: WARNING: IOException while reading response: java.io.IOException: Server returned HTTP response code: 405 for URL: http://localhost:8983/solr/#/collection1/update/extract
1 files indexed.
COMMITting Solr index changes to http://localhost:8983/solr/#/collection1/update/extract..
Time spent: 0:00:00.031

Вот мой schema.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<schema name="simple" version="1.1">
  <types>
    <fieldtype name="string" class="solr.StrField"/>
    <fieldtype name="long" class="solr.TrieLongField"/>
    <fieldtype name='text' class='solr.TextField'>
        <analyzer>
            <tokenizer class='solr.WhitespaceTokenizerFactory' />
            <filter class='solr.LowerCaseFilterFactory' />
        </analyzer>
    </fieldtype>
  </types>

  <fields>
    <field name="id" type="long" required="true" />
    <field name='fullText' type='text' multiValued='true' />
    <dynamicField name="*" type="string" multiValued="true" indexed="true" stored="true" />
    <copyField source="*" dest="fulltext" />
  </fields>

  <uniqueKey>id</uniqueKey>
  <defaultSearchField>fullText</defaultSearchField>
  <solrQueryParser defaultOperator="OR" />
</schema>

и solrconfig.xml:

<?xml version="1.0" encoding="UTF-8" ?>
<config>
  <luceneMatchVersion>LUCENE_45</luceneMatchVersion>
  <directoryFactory name='DirectoryFactory' class='solr.MMapDirectoryFactory' />

  <lib dir='${solr.core.instanceDir}\lib' />

  <requestHandler name='standard' class='solr.StandardRequestHandler' default='true' />
  <requestHandler name="/select" class="solr.SearchHandler" />
  <requestHandler name='/update' class='solr.UpdateRequestHandler' />
  <requestHandler name='/update/extract' class='solr.extraction.ExtractingRequestHandler'>
    <lst name="defaults">
    <str name="uprefix">s_meta_</str>
    <str name="fmap.content">t_content</str>
    <str name="fmap.dcterms:created">d_created</str>
  </lst>
  </requestHandler>
  <requestHandler name='/admin/' class='org.apache.solr.handler.admin.AdminHandlers' />
  <admin>
    <defaultQuery>*:*</defaultQuery>
  </admin>

</config>

Как видите, я на машине с Windows(7).


person Francesco    schedule 22.01.2014    source источник
comment
Вы пытались указать полный путь к pdf-файлу, используя прямую или обратную косую черту?   -  person D_K    schedule 22.01.2014
comment
Да, я перепробовал все возможные комбинации...   -  person Francesco    schedule 23.01.2014
comment
ну один из вариантов, если не боитесь установки дополнительного софта, попробовать постить из cygwin. В этом случае вы можете использовать косую черту и относительные пути.   -  person D_K    schedule 23.01.2014


Ответы (1)


Это ошибка пути к файлу. Попробуйте collection1\conf\Lucene.pdf. Вы используете машину с Windows, используйте \.

Ошибка говорит вам о том, что она не может найти указанный вами файл PDF. Таким образом, виновником должна быть последняя часть команды «коллекция1\Lucene.pdf». Вы сказали, что поместили файлы PDF для индексации в collection1\conf. Итак, вы должны попробовать это:

java -Dtype=application/pdf -Durl=http://localhost:8983/solr/collection1/update/extract -jar post.jar collection1\conf\Lucene.pdf

Если это все еще не работает, попробуйте указать полный путь к PDF-файлу, который вы пытаетесь проиндексировать.

Совет: изучая Solr, не начинайте с того, что возитесь со структурой файла.

person DetourToNirvana    schedule 22.01.2014
comment
Кроме того, # в URL не имеет значения. - person DetourToNirvana; 22.01.2014
comment
Привет, KrackJack, с # или без него должно быть уместно, см., что сообщение об ошибке отличается. Во всяком случае, я пытался указать полный путь в обоих случаях, но проблема остается прежней, и сообщения об ошибках тоже... - person Francesco; 22.01.2014
comment
Используйте обратную косую черту вместо косой черты, приятель. Ты на окнах. XD - person DetourToNirvana; 22.01.2014
comment
Если вы хотите использовать обратную косую черту в URL-адресе, результат будет таким: SimplePostTool: FATAL: System Property 'url' is not a valid URL: http\\localhost:8983\solr\cell\update\extract. Если вы имеете в виду путь к файлу, я уже пытался разместить pdf в том же месте, что и банку, чтобы я мог написать только имя файла, но ничего не меняется... - person Francesco; 22.01.2014