0

構成を介して、Spring-data-solr を Tika で使用する方法はありますか? ContentStreamUpdateRequest+addfileそれ以外の場合、 spring-data-solrの solrj に代わるものはありますか?

現在、Solrj + Tika を次のように使用しています。

SolrServer server = new HttpSolrServer(URL);
...
Tika tika = new Tika();
...
String fileType = tika.detect(path.toFile());
up = new ContentStreamUpdateRequest("/update/extract"); 
up.addFile(path.toFile(), fileType);
up.setParam("literal.id", idField);
...
up.setAction(AbstractUpdateRequest.ACTION.COMMIT, true, true);
NamedList<Object> request = server.request(up);

このExtractingRequestHandlerガイドにうまく従うことで、このメソッドにたどり着きました。

spring-data-solrSolr 4.3.0 を使用して、Solrj を直接呼び出す代わりに、を介して同じ結果を得ることができますか?

4

1 に答える 1

1

に対する直接のサポートはありませんContentStreamUpdateRequestSolrCallbackフォールバックは、によって実行される内でそれを行うことSolrTemplateです。

NamedList<Object> result = solrTemplate.execute(new SolrCallback<NamedList<Object>>() {

  @Override
  public NamedList<Object> doInSolr(SolrServer solrServer) throws SolrServerException, IOException {
    Tika tika = new Tika();
    // ...
    String fileType = tika.detect(path.toFile());
    ContentStreamUpdateRequest up = new ContentStreamUpdateRequest("/update/extract");
    up.addFile(path.toFile(), fileType);
    up.setParam("literal.id", idField);
    // ...
    up.setAction(org.apache.solr.client.solrj.request.AbstractUpdateRequest.ACTION.COMMIT, true, true);
    NamedList<Object> request = solrServer.request(up);
  }

});

より多くのリポジトリでこの種の動作が必要な場合は、すべてのリポジトリへのカスタム メソッドの追加に関するこの投稿が役立つ可能性があります。

于 2014-02-17T04:43:46.280 に答える