2012-01-19 21 views
8

Zasadniczo próbuję indeksować dokumenty Word lub PDF w Solr i znalazłem ExtractingRequestHandler, ale nie mogę wymyślić, jak napisać kod w języku C#, który wykonuje żądanie POST HTTP, jak w Solr wiki: http://wiki.apache.org/solr/ExtractingRequestHandler.Indeks dokumentów pdf w Solr od klienta C#

Zainstalowałem Solr 3.4 na Tomcat 7 (7.0.22) używając plików z katalogu/solr w archiwum Solr i niczego nie zmieniłem. Plik ExtractingRequestHandler powinien zostać skonfigurowany po wyjęciu z pudełka w pliku solrconfig.xml i gotowy do użycia, prawda?

Czy niektórzy z was mogą podać przykład C# (HttpWebRequest), w jaki sposób utworzyć żądanie HTTP POST i przesłać plik PDF, tak jak robi się to przy użyciu curl w wiki Solr?

Rozejrzałem się po tej stronie i wielu innych, próbując znaleźć przykład lub samouczek, jak to zrobić, ale nic nie znalazłem.

EDIT:

końcu udało mi się zmusić go do pracy przy użyciu SolrNet!

W celu użycia go do pracy trzeba skopiować to do folderu lib-w katalogu instalacyjnym Solr z zamkiem Solr:

  • apache-solr-cell-3.4.0.jar plik z Folder dist
  • treść contrib \ ekstrakcja \ lib

z SolrNet 0.4.0 beta 2, kod ten spełnia swoje zadanie:

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

Przepraszamy za kłopot. Mam jednak nadzieję, że inni uznają to za przydatne.

+0

Bardzo przydatne informacje -> to działa dla mnie. – FrenkyB

+0

Czy możesz opublikować swoją klasę IndexDocument? Dzięki! – CmdrTallen

+0

Aby użyć ExtractParameters potrzebujesz SolrNet> 0.3.1 ("Install-Package SolrNet-Pre") – CmdrTallen

Odpowiedz

3

Polecam, używając klienta SolrNet. Obsługuje ExtractingRequestHandler.

+0

Używam już SolrNet, ale nie wiedziałem, że ExtractingRequestHandler był obsługiwany. Czy jest jakiś dokument na ten temat? – jonasm

+0

Przeszukałem całą dokumentację SolrNet i wygląda na to, że jest obsługiwane tylko w najnowszej wersji beta. Nadal chciałbym przykład przy użyciu HttpWebRequest, jeśli jest to możliwe. – jonasm

+0

Mimo że wersja SolrNet, która obsługuje to wydanie Beta, jest całkowicie stabilna i użyteczna. Używam SolrNet od ponad 2 lat i bez żadnych problemów korzystam z wersji beta w naszych środowiskach produkcyjnych. Na przykład, chciałbym zbadać źródło SolrNet - https://github.com/mausch/solrnet, ponieważ wiem, że robi HttpWebRequest, aby zadzwonić do Solr, więc powinieneś być w stanie śledzić, co robi. –