Esempio n. 1
0
 /**
  * @param int[] $document_ids
  * @param RISSucheKrits $benachrichtigung
  * @return array
  */
 public function queryBenachrichtigungen($document_ids, $benachrichtigung)
 {
     $solr = RISSolrHelper::getSolrClient("ris");
     $select = $solr->createSelect();
     $select->addSort('sort_datum', $select::SORT_DESC);
     $select->setRows(100);
     /** @var Solarium\QueryType\Select\Query\Component\DisMax $dismax */
     $dismax = $select->getDisMax();
     $dismax->setQueryParser('edismax');
     $dismax->setQueryFields("text text_ocr");
     $select->setQuery($benachrichtigung->getSolrQueryStr($select));
     $select->createFilterQuery('maxprice')->setQuery(implode(" OR ", $document_ids));
     /** @var Solarium\QueryType\Select\Query\Component\Highlighting\Highlighting $hl */
     $hl = $select->getHighlighting();
     $hl->setFields('text, text_ocr, antrag_betreff');
     $hl->setSimplePrefix('<b>');
     $hl->setSimplePostfix('</b>');
     $ergebnisse = $solr->select($select);
     /** @var RISSolrDocument[] $documents */
     $documents = $ergebnisse->getDocuments();
     $res = [];
     foreach ($documents as $document) {
         $res[] = ["id" => $document->id, "name" => $document->dokument_name . ", " . $document->antrag_betreff];
     }
     return $res;
 }