1

http://wiki.apache.org/solr/ExtractingRequestHandlerは、独自のコンテキストを持ち、solr をサーバー機能として embebdedd solr として使用したい Web アプリケーションでこのハンドラーを構成する方法について多くの情報を提供していません。ドキュメントを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>

dir 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 によってインデックス化されるのでしょうか? これらがインデックス化されている場合、どうすれば結果を取得できますか?

誰でも私がどこで間違っているのか教えてもらえますか?

回答を得るためにさらに情報が必要な場合はお知らせください。

4

0 に答える 0