/** * Tests toArray method. */ public function testHighlightToArray() { $highlight = new Highlight([new Field('name')]); $highlight->setOrder('test'); $highlight->setHighlighterType('postings'); $highlight->setFragmentSize(5); $highlight->setNumberOfFragments(5); $highlight->setTagsSchema('styled'); $highlight->setTag('tag', 'class'); $highlight->setTag('only_tag'); $result = ['order' => 'test', 'type' => 'postings', 'fragment_size' => 5, 'number_of_fragments' => 5, 'tags_schema' => 'styled', 'post_tags' => ['</tag>', '</only_tag>'], 'pre_tags' => ['<tag class="class">', '<only_tag>'], 'fields' => ['name' => ['matched_fields' => ['name']]]]; $this->assertEquals($result, $highlight->toArray()); }
/** * Test highlight for TermQuery. * * The following methods of Field class tested: * * - setting highlighter type * - setting fragment size * - setting number of fragments */ public function testHighlightedField() { $repository = $this->getManager()->getRepository('AcmeTestBundle:Product'); $highlight = new Highlight(); $highlight->setTag('tag')->add((new Field('title'))->setForceSource(true)->setHighlighterType(Field::TYPE_PLAIN)->setFragmentSize(12)->setNumberOfFragments(1)); $search = $repository->createSearch()->addQuery(new TermQuery('title', 'foo'))->setHighlight($highlight); $results = $repository->execute($search, Repository::RESULTS_RAW); $this->assertStringStartsWith('<tag>', $results['hits']['hits'][0]['highlight']['title'][0]); $this->assertLessThanOrEqual(12, strlen(strip_tags($results['hits']['hits'][1]['highlight']['title'][0]))); $this->assertEquals(1, count($results['hits']['hits'][1]['highlight']['title'])); }
/** * Check if highlight is parsed as expected. * * @expectedException \UnderflowException * @expectedExceptionMessage Offset unknown_field undefined. */ public function testHighlightParse() { /** * @var Repository $repository * @var TermQuery $termQuery */ list($repository, $termQuery) = $this->buildRepositoryAndTerm(); $highlight = new Highlight(); $highlight->setTag('tag')->setOrder('score')->add((new Field('title'))->setForceSource(true)); $result = $this->executeHighlight($repository, $termQuery, $highlight, Repository::RESULTS_OBJECT)[0]; $this->assertStringStartsWith('<tag>foo</tag>', $result->getHighLight()['title']); $result->getHighLight()['unknown_field']; }