/**
  * @param \Solarium\QueryType\Select\Query\Query $select
  */
 public function addKritsToSolr(&$select)
 {
     foreach ($this->krits as $krit) {
         switch ($krit["typ"]) {
             case "betreff":
                 $helper = $select->getHelper();
                 $select->createFilterQuery("betreff")->setQuery("antrag_betreff:" . $helper->escapeTerm($krit["suchbegriff"]));
                 break;
             case "antrag_typ":
                 $select->createFilterQuery("antrag_typ")->setQuery("antrag_typ:" . $krit["suchbegriff"]);
                 break;
             case "antrag_wahlperiode":
                 $select->createFilterQuery("antrag_wahlperiode")->setQuery("antrag_wahlperiode:" . $krit["suchbegriff"]);
                 break;
             case "volltext":
                 /** @var Solarium\QueryType\Select\Query\Component\DisMax $dismax */
                 $dismax = $select->getDisMax();
                 $dismax->setQueryParser('edismax');
                 $dismax->setQueryFields("text text_ocr");
                 $select->setQuery($krit["suchbegriff"]);
                 break;
             case "ba":
                 $select->createFilterQuery("dokument_bas")->setQuery("dokument_bas:" . $krit["ba_nr"]);
                 break;
             case "geo":
                 $helper = $select->getHelper();
                 $select->createFilterQuery("geo")->setQuery($helper->geofilt("geo", $krit["lat"], $krit["lng"], $krit["radius"] / 1000));
                 break;
             case "referat":
                 $helper = $select->getHelper();
                 $select->createFilterQuery("referat")->setQuery("referat_id:" . $helper->escapeTerm($krit["referat_id"]));
                 break;
             case "antrag_nr":
                 /** @var Solarium\QueryType\Select\Query\Component\DisMax $dismax */
                 $dismax = $select->getDisMax();
                 $dismax->setQueryParser('edismax');
                 $dismax->setQueryFields("antrag_nr");
                 $select->setQuery("*" . $krit["suchbegriff"] . "*");
                 break;
         }
     }
 }
Example #2
0
 public function testGetDisMax()
 {
     $dismax = $this->query->getDisMax();
     $this->assertEquals('Solarium\\QueryType\\Select\\Query\\Component\\DisMax', get_class($dismax));
 }
 public function testWithComponent()
 {
     $this->query->getDisMax();
     $request = $this->builder->build($this->query);
     $this->assertEquals('dismax', $request->getParam('defType'));
 }