Индексировать 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.