2012-01-19 14 views
8

Básicamente estoy tratando de indexar documentos word o pdf en Solr y encontré el ExtractingRequestHandler, pero no puedo descifrar cómo escribir código en C# que realiza la solicitud HTTP POST como en el Solr wiki: http://wiki.apache.org/solr/ExtractingRequestHandler.Documentos de índice PDF en Solr desde C# client

He instalado Solr 3.4 en Tomcat 7 (7.0.22) usando los archivos del directorio de ejemplo/solr en el zip de Solr y no he alterado nada. El ExtractingRequestHandler debe configurarse de fábrica en el archivo solrconfig.xml y listo para usar, ¿no?

¿Alguno de ustedes puede dar un ejemplo de C# (HttpWebRequest) de cómo realiza la solicitud HTTP POST y cargar un archivo PDF como se hace usando curl en la wiki de Solr?

He buscado en todo este sitio y muchos otros tratando de encontrar un ejemplo o un tutorial sobre cómo se hace esto, pero no he encontrado nada.

EDIT:

que finalmente lograron conseguir que funcione utilizando SolrNet!

Con el fin de que funcione tiene que copiar esto a una carpeta lib del directorio de instalación de la cremallera Solr Solr: archivo

  • -Solr de células Apache-3.4.0.jar de la carpeta dist
  • contenido del contrib \ extracción \ lib

Con SolrNet 0.4.0 beta 2, este código se encarga del trabajo:

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(); 

Disculpe las molestias. Sin embargo, espero que a otros les resulte útil.

+0

Información muy útil -> funciona para mí. – FrenkyB

+0

¿Puedes publicar tu clase IndexDocument? ¡Gracias! – CmdrTallen

+0

Para utilizar ExtractParameters necesita SolrNet> 0.3.1 ("Install-Package SolrNet -Pre") – CmdrTallen

Respuesta

3

Recomendaría usar el cliente SolrNet. Es compatible con ExtractingRequestHandler.

+0

Uso ya SolrNet pero no sabía que ExtractingRequestHandler era compatible. ¿Hay algún tipo de documentación sobre esto? – jonasm

+0

He estado leyendo toda la documentación de SolrNet y parece que solo es compatible con la última versión beta. Todavía me gustaría un ejemplo simplemente usando un HttpWebRequest si es posible. – jonasm

+0

Aunque la versión de SolrNet que admite esto es una versión Beta, es completamente estable y utilizable. He estado usando SolrNet durante más de 2 años y he estado ejecutando versiones Beta en nuestros entornos de producción sin ningún problema. Por ejemplo, exploraría la fuente SolrNet - https://github.com/mausch/solrnet, ya que sé que está haciendo una HttpWebRequest para llamar a Solr, por lo que debería poder seguir lo que está haciendo. –

Cuestiones relacionadas