Индексировать pdf-документы в Solr из клиента C#

в основном я пытаюсь индексировать документы 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?

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

EDIT:

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

для того, чтобы он работал, вам нужно скопировать это в lib-папку в каталоге установки Solr из Solr zip:

  • apache-solr-cell-3.4.0.jar-файл из папки dist
  • содержимое каталога contribextractionlib

С 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 ответов


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