Индекс pdf документов в Solr от клиента C # - PullRequest
8 голосов
/ 20 января 2012

В основном я пытаюсь проиндексировать документы Word или PDF в Solr и нашел ExtractingRequestHandler, но не могу понять, как написать код на c #, который выполняет запрос HTTP POST, как в вики Solr: http://wiki.apache.org/solr/ExtractingRequestHandler.

Я установил Solr 3.4 на Tomcat 7 (7.0.22), используя файлы из каталога example / solr в zip-архиве Solr, и я ничего не изменил.ExtractingRequestHandler должен быть настроен из коробки в файле solrconfig.xml и готов к использованию, верно?

Могут ли некоторые из вас привести пример C # (HttpWebRequest) того, как вы делаете запрос HTTP POST и загружаете PDFфайл, как это делается с помощью curl в вики Solr?

Я просмотрел весь этот сайт и многие другие, пытаясь найти пример или учебное пособие о том, как это сделать, но ничего не нашел.

РЕДАКТИРОВАТЬ:

Мне, наконец, удалось заставить его работать, используя SolrNet!

Для того, чтобы он работал, вам необходимо скопировать его вlib-папка в вашем установочном каталоге Solr из zol-файла Solr:

  • apache-solr-cell-3.4.0.jar из папки dist
  • содержимое contrib \ extract \каталог lib

С SolrNet 0.4.0 beta 2 этот код выполняет свою работу:

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

Извините за беспокойство.Однако я надеюсь, что другие найдут это полезным.

1 Ответ

3 голосов
/ 20 января 2012

Я бы порекомендовал использовать клиент SolrNet . Он поддерживает ExtractingRequestHandler.

...