将doc文件夹中的所有文档索引到solr FileListEntityProcessor

时间:2012-04-20 20:04:25

标签: solrj apache-tika

http://wiki.apache.org/solr/ExtractingRequestHandler没有提供太多信息,如何在具有自己的上下文的webapplication中配置此处理程序,并希望将solr用作服务器功能,如embebdedd solr。 您能否提供一些有关如何将文档上传到solr以及从这些文档中搜索某些内容的信息? 我在solrConf.xml中配置了DIH

<requestHandler name="/dataimport" 
   class="org.apache.solr.handler.dataimport.DataImportHandler">
    <lst name="defaults">
        <str name="config">tika-data-config.xml</str>
    </lst>
  </requestHandler>

和tika-data-config.xml看起来像

<dataConfig>
    <dataSource type="BinFileDataSource" name="bin" />
    <document>
      <entity name="sd"
        processor="FileListEntityProcessor"
        newerThan="'NOW-30DAYS'"
        filenName=".*\.(DOC)|(PDF)|(pdf)|(doc)|(docx)|(ppt)"
        baseDir="G:/workspace/FacetedSearch/src/solr/docs"
        recursive="true"
        rootEntity="false"
          >
            <field column="fileAbsolutePath" name="path" />
            <field column="fileSize" name="size" />
            <field column="fileLastModified" name="lastmodified" />
            <field column="fileAbsolutePath" name="text" />  
            <!-- <field column="fileName" name="text" /> -->
            <field column="baseDir" name="text" />

        <!-- <entity name="tika-test" processor="TikaEntityProcessor" 
          url="${sd.fileAbsolutePath}" format="text" dataSource="bin">
         -->
         <entity name="tika-test" 
                 dataSource="bin"  
                 processor="TikaEntityProcessor" 
                 url="G:/workspace/FacetedSearch/src/solr/docs" 
                 format="text" >
          <field column="Author" name="author" meta="true"/>
          <field column="Content-Type" name="title" meta="true"/>
          <field column="title" name="title" meta="true"/>
          <field column="text" name="text"/>

        </entity>


    </entity>
  </document>

</dataConfig>

目录G:/ workspace / FacetedSearch / src / solr / docs包含许多pdf和html文件 其中一些是tutorial.pdf ...... index.pdf

当我将solrQuery对象构建为

时,在此配置之后

    CoreContainer.Initializer initializer = new CoreContainer.Initializer();
    CoreContainer coreContainer = initializer.initialize();
    EmbeddedSolrServer solrServer = new EmbeddedSolrServer(coreContainer, "");  
    SolrQuery solrQuery = new SolrQuery();
    solrQuery.addField("literal.id");   
    solrQuery.setQuery("index.pdf");
    QueryResponse queryResponse = null ;
    try{
    queryResponse = (QueryResponse) solrServer.query(solrQuery);
    }catch(Exception e){
    System.out.println("exception occured while processing the solrQuery "+ 
    e.getMessage() +"stack trace " + e + solrQuery.toString()); 
    }
    out.println(queryResponse);

我没有得到任何结果(这里queryResponse为null)。 我有一个由solr 3.5分发的schema.xml,并添加了一些字段为

<field name="path" type="text_general" indexed="true" stored="true" />   
<field name="lastmodified" type="date" indexed="true" stored="true" />

我的问题是“G:/ workspace / FacetedSearch / src / solr / docs”中的文档 将在Solr启动时由solr索引? 如果这些是索引的,我怎么能得到结果呢?

任何人都可以让我知道我在哪里做错了吗?

如果我在回答问题时需要更多信息,请告诉我。

0 个答案:

没有答案