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; }