2012-01-19 12 views
8

Fondamentalmente sto cercando di indicizzare i documenti word o pdf in Solr e ho trovato ExtractingRequestHandler, ma non riesco a capire come scrivere il codice in C# che esegue la richiesta HTTP POST come nel Wiki Solr: http://wiki.apache.org/solr/ExtractingRequestHandler.Indice documenti PDF in Solr dal client C#

Ho installato Solr 3,4 su Tomcat 7 (7.0.22) utilizzando i file dalla directory esempio/solr nello zip Solr e non ho cambiato nulla. L'ExtractingRequestHandler dovrebbe essere configurato fuori dalla scatola nella solrconfig.xml e pronto per l'uso, giusto?

Alcuni di voi possono fornire un esempio C# (HttpWebRequest) di come si effettua la richiesta HTTP POST e di caricare un file PDF come se fosse stato fatto usando curl nel wiki Solr?

ho guardare tutto questo sito e molti altri cercando di trovare un esempio o un tutorial su come questo viene fatto, ma non ho trovato nulla.

EDIT:

sono finalmente riuscito a farlo funzionare con SolrNet!

Al fine di farlo funzionare è necessario copiare ad un lib-cartella nella directory di installazione Solr Solr dalla zip: file di

  • apache-solr-cell-3.4.0.jar dal cartella dist
  • contenuto del contrib \ estrazione \ lib

Con SolrNet 0.4.0 beta 2, questo codice fa il lavoro:

Startup.Init<IndexDocument>("YOUR-SOLR-SERVICE-PATH"); 
var solr = ServiceLocator.Current.GetInstance<ISolrOperations<IndexDocument>>(); 

using (FileStream fileStream = File.OpenRead("FILE-PATH-FOR-THE-FILE-TO-BE-INDEXED")) 
{ 
    var response = 
     solr.Extract(
      new ExtractParameters(fileStream, "doc1") 
      { 
       ExtractFormat = ExtractFormat.Text, 
       ExtractOnly = false 
      }); 
} 

solr.Commit(); 

Ci scusiamo per il disturbo. Spero comunque che gli altri trovino questo utile.

+0

Informazioni molto utili -> funziona per me. – FrenkyB

+0

Puoi pubblicare la tua lezione IndexDocument? Grazie! – CmdrTallen

+0

Per utilizzare ExtractParameters è necessario SolrNet> 0.3.1 ("Install-Package SolrNet -Pre") – CmdrTallen

risposta

3

Si consiglia di utilizzare il client SolrNet. Supporta ExtractingRequestHandler.

+0

Uso già SolrNet ma non sapevo che ExtractingRequestHandler fosse supportato. C'è una sorta di documentazione su questo? – jonasm

+0

Sono stato in tutta la documentazione SolrNet e sembra che sia supportato solo nell'ultima versione beta. Mi piacerebbe comunque un esempio solo usando un HttpWebRequest se è possibile. – jonasm

+0

Anche se la versione di SolrNet che supporta questo è una versione Beta, è completamente stabile e utilizzabile. Utilizzo SolrNet da oltre 2 anni e ho eseguito versioni Beta nei nostri ambienti di produzione senza problemi. Per un esempio, vorrei esplorare la fonte SolrNet - https://github.com/mausch/solrnet perché so che sta facendo un HttpWebRequest per chiamare Solr, quindi dovresti essere in grado di seguire ciò che sta facendo. –