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 によってインデックス化されるのでしょうか? これらがインデックス化されている場合、どうすれば結果を取得できますか?
誰でも私がどこで間違っているのか教えてもらえますか?
回答を得るためにさらに情報が必要な場合はお知らせください。