public function testTermQuery()
 {
     $objSearchTerm = new class_module_search_term("blub");
     $objSearchQuery = new class_module_search_term_query($objSearchTerm);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 1, "simple term query (blub)");
     $this->assertEquals($this->getCountFromQuery($objSearchQuery), 1);
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterModules(array(_search_module_id_));
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 0, "metadata filter (blub)");
     $this->assertEquals($this->getCountFromQuery($objSearchQuery), 0);
     $objMetadataFilter->setFilterModules(array(_system_modul_id_, _search_module_id_));
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 1, "metadata filter (blub)");
     $this->assertEquals($this->getCountFromQuery($objSearchQuery), 1);
     $objParser = new class_module_search_query_parser();
     $objQuery = $objParser->parseText("subtitle:blub");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 1, "count error (subtitle:blub)");
     $this->assertEquals($arrResult[0]["score"], 1, "field filter scoring (subtitle:blub)");
     $this->assertEquals($this->getCountFromQuery($objSearchQuery), 1);
     $objQuery = $objParser->parseText("title:hallo");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 2);
     $this->assertEquals($arrResult[0]["score"], 1, "field filter scoring (title:hallo)");
     $this->assertEquals($this->getCountFromQuery($objQuery), 2);
     $objQuery = $objParser->parseText("ipsum");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 1);
     $this->assertEquals($arrResult[0]["score"], 3, "field filter scoring (ipsum)");
     $this->assertEquals($this->getCountFromQuery($objQuery), 1);
 }
 public function testBooleanQuery()
 {
     $objSearchTerm1 = new class_module_search_term("hallo");
     $objSearchTerm2 = new class_module_search_term("welt");
     $objBooleanSearch = new class_module_search_boolean_query();
     $objBooleanSearch->add($objSearchTerm1, class_module_search_boolean_query::BOOLEAN_CLAUSE_OCCUR_MUST);
     $objBooleanSearch->add($objSearchTerm2, class_module_search_boolean_query::BOOLEAN_CLAUSE_OCCUR_MUST);
     $arrResult = $this->getResultsFromQuery($objBooleanSearch);
     $this->assertEquals(count($arrResult), 2);
     $this->assertEquals($arrResult[0]["score"], 2);
     $this->assertEquals($this->getCountFromQuery($objBooleanSearch), 2);
     // One more optional search term
     $objSearchTerm3 = new class_module_search_term("blub");
     $objBooleanSearch->add($objSearchTerm3, class_module_search_boolean_query::BOOLEAN_CLAUSE_OCCUR_SHOULD);
     $arrResult = $this->getResultsFromQuery($objBooleanSearch);
     $this->assertEquals(count($arrResult), 2);
     $this->assertEquals($arrResult[0]["score"], 4);
     $this->assertEquals($arrResult[1]["score"], 2);
     $this->assertEquals($this->getCountFromQuery($objBooleanSearch), 2);
     // Module metadata filter
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterModules(array(_system_modul_id_));
     $objBooleanSearch->setMetadataFilter($objMetadataFilter);
     $arrResult = $this->getResultsFromQuery($objBooleanSearch);
     $this->assertEquals(count($arrResult), 1, "Metadata module filter");
     $this->assertEquals($arrResult[0]["score"], 4);
     $this->assertEquals($this->getCountFromQuery($objBooleanSearch), 1);
     $objMetadataFilter->setFilterModules(array(_system_modul_id_, _search_module_id_));
     $objBooleanSearch->setMetadataFilter($objMetadataFilter);
     $arrResult = $this->getResultsFromQuery($objBooleanSearch);
     $this->assertEquals(count($arrResult), 2, "Metadata module filter");
     $this->assertEquals($this->getCountFromQuery($objBooleanSearch), 2);
     // must must mustNot Search
     $objParser = new class_module_search_query_parser();
     $objQuery = $objParser->parseText("+hallo +welt -blub");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 1);
     $this->assertEquals($this->getCountFromQuery($objQuery), 1);
     $objParser = new class_module_search_query_parser();
     $objQuery = $objParser->parseText("+hallo +subtitle:blub");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 1);
     $this->assertEquals($arrResult[0]["score"], 2, "field filter scoring");
     $this->assertEquals($this->getCountFromQuery($objQuery), 1);
     $objQuery = $objParser->parseText("title:hallo");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 2);
     $this->assertEquals($arrResult[0]["score"], 1, "field filter scoring");
     $this->assertEquals($this->getCountFromQuery($objQuery), 2);
     //test new Scoring
     $objQuery = $objParser->parseText("lorem ipsum");
     $arrResult = $this->getResultsFromQuery($objQuery);
     $this->assertEquals(count($arrResult), 1);
     $this->assertEquals($arrResult[0]["score"], 4, "'lorem ipsum' scoring");
     $this->assertEquals($this->getCountFromQuery($objQuery), 1);
 }
 public function testTermQuery()
 {
     //simple module filter
     $objSearchTerm = new class_module_search_term("blub");
     $objSearchQuery = new class_module_search_term_query($objSearchTerm);
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterModules(array(_search_module_id_));
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 0);
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterModules(array(_system_modul_id_));
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 1);
     //last modified time
     $objSearchTerm = new class_module_search_term("hallo");
     $objSearchQuery = new class_module_search_term_query($objSearchTerm);
     //start date
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterChangeStartDate(self::$objTimestamp3);
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 0);
     //start date 2
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterChangeStartDate(self::$objTimestamp1);
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 2);
     //end date
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterChangeEndDate(self::$objTimestamp3);
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 2);
     //interval
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterChangeStartDate(self::$objTimestamp2);
     $objMetadataFilter->setFilterChangeEndDate(self::$objTimestamp3);
     $objSearchQuery->setMetadataFilter($objMetadataFilter);
     $arrResults = $this->getResultsFromQuery($objSearchQuery);
     $this->assertEquals(count($arrResults), 1);
 }
 /**
  * @param class_module_search_search $objSearch
  *
  * @return class_module_search_metadata_filter
  */
 private function getMetadataFilterFromSearch($objSearch)
 {
     $objMetadataFilter = new class_module_search_metadata_filter();
     $objMetadataFilter->setFilterModules($objSearch->getFilterModules());
     $objMetadataFilter->setFilterUser($objSearch->getFilterUser());
     $objMetadataFilter->setFilterChangeStartDate($objSearch->getObjChangeStartdate());
     $objMetadataFilter->setFilterChangeEndDate($objSearch->getObjChangeEnddate());
     $objMetadataFilter->setBitPortalSearch($objSearch->getBitPortalObjectFilter());
     $objMetadataFilter->setStrPortalLang($objSearch->getStrPortalLangFilter());
     return $objMetadataFilter;
 }