public function testFilteredSearch() { $client = new Elastica_Client(); $index = $client->getIndex('test'); $index->create(array(), true); $type = $index->getType('helloworld'); $doc = new Elastica_Document(1, array('id' => 1, 'email' => '*****@*****.**', 'username' => 'hanswurst', 'test' => array('2', '3', '5'))); $type->addDocument($doc); $doc = new Elastica_Document(2, array('id' => 2, 'email' => '*****@*****.**', 'username' => 'peter', 'test' => array('2', '3', '5'))); $type->addDocument($doc); $queryString = new Elastica_Query_QueryString('test*'); $filter1 = new Elastica_Filter_Term(); $filter1->addTerm('username', 'peter'); $filter2 = new Elastica_Filter_Term(); $filter2->addTerm('username', 'qwerqwer'); $query1 = new Elastica_Query_Filtered($queryString, $filter1); $query2 = new Elastica_Query_Filtered($queryString, $filter2); $index->refresh(); $resultSet = $type->search($queryString); $this->assertEquals(2, $resultSet->count()); $resultSet = $type->search($query1); $this->assertEquals(1, $resultSet->count()); $resultSet = $type->search($query2); $this->assertEquals(0, $resultSet->count()); }