加载文件时出现FileNotFoundException

时间:2014-01-22 09:58:32

标签: solr solr4

我对Solr很新(昨天安装好了......)我已经遇到了第一个问题。

我有我的目录Solr-Indexing,我复制了post.jar我的核心目录Collection1。在Collection1我的conf目录中包含schema.xmlsolrconfig.xml和一些pdf文档(我想导入/索引)。

我用java -Dsolr.solr.home="D:/download/Solr-Test/Solr-Indexing" -jar start.jar启动我的Solr实例(我在日志中看不到任何问题)然后我尝试使用命令java -Dtype=application/pdf -Durl=http://localhost:8983/solr/collection1/update/extract -jar post.jar collection1/Lucene.pdf在我的集合中加载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

问题出在哪里?我想念一下吗?

我可以看到浏览器中的网址为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)机器上。

1 个答案:

答案 0 :(得分: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时,不要先弄乱文件结构。