Индексировать содержимое файла PDF с помощью Apache Solr

используя Solrрасширение php для взаимодействия с Apache Solr. Я'm индексирование данных из базы данных. Я также хотел проиндексировать содержимое внешних файлов (таких как PDF, PPTX).

Логика для индексации: Предположим,schema.xml определены следующие поля:

 




Отдельная запись в базе данных может / не может иметь сохраненный файл.

Следовательно, мой код для индексации следующий:

$post = stdclass object having the database content
$doc = new SolrInputDocument();
$doc->addField('id', $post->id);
$doc->addField('name', $post->name);
....
....
$res = $client->addDocument($doc);
$client->commit();

Далее я хочу добавить содержимое файла PDF в тот же документ, что и выше.

Этоcurl код:

$ch = curl_init('
http://localhost:8010/solr/update/extract?');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, array('myfile'=>'@'.$post->filepath));
$result= curl_exec ($ch);

Но, думаю, яЯ что-то упустил. Я прочиталдокументация, но я не могу найти способ извлечь содержимое файла и затем добавить его в существующий документ solr вfield: filecontent

РЕДАКТИРОВАТЬ # 1: Если я попытаюсь установитьliteral.id=xyz в запросе curl создается новый документ solr, имеющийid=xyz, Я неЯ не хочу, чтобы был создан новый документ Solr. Я хочу, чтобы содержимое pdf было проиндексировано и сохранено в виде поля в ранее созданном документе solr.

$doc = new SolrInputDocument();//Solr document is created
$doc->addField('id', 98765);//The solr document created above is assigned an id=`98765`
....
....
$ch = curl_init('
http://localhost:8010/solr/update/extract?literal.id=1&literal.name=Name&commit=true');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, array('myfile'=>'@'.$post->filepath));
$result= curl_exec ($ch);

Я хочу вышеуказанный документ solr (id = 98765) иметь поле, в котором содержимое pdf индексируется & сохраняются.

Но запрос cURL (как указано выше) создает другой новый документ (сid = 1). Я неЯ не хочу этого.

Ответы на вопрос(1)

Ваш ответ на вопрос