/** * @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; }