2014-01-22 2 views
0

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

У меня есть мой каталог 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> 

Как вы можете видеть, я нахожусь на машине (7).

+0

Вы пробовали указать полный путь к файлу pdf, используя обратную или обратную косую черту? –

+0

Да, я пробовал все возможные комбинации ... – Francesco

+0

ну и один вариант, если вы не боитесь устанавливать дополнительное программное обеспечение, - это попробовать опубликовать с cygwin. В этом случае вы можете использовать косые черты и относительные пути. –

ответ

0

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

Какая ошибка говорит вам, что он не может найти файл pdf, который вы указали. Поэтому последней частью команды «collection1 \ 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 не начинайте с беспорядка с файловой структурой.

+0

Кроме того, «#» в URL-адресе не имеет значения. – DetourToNirvana

+0

Привет, KrackJack, с или без "#" должен быть релевантным, см., Что сообщение об ошибке отличается. Во всяком случае, я попытался с полным путем в обоих случаях, но проблема осталась прежней, и сообщения об ошибках тоже ... – Francesco

+1

Используйте обратную косую черту вместо косой черты, помощник. Вы на окнах. XD – DetourToNirvana

Смежные вопросы